grep命令介绍
grep命令用于查找文件里符合条件的字符串
grep命令用于查找内容包含指定的范围样式的文件
grep如果发现某文件的内容符合所指定的范文样式,则会把含有范文样式的那一行显示出来
grep语法
grep 选项 需要捕获的文字 目标文件
例如从/etc/passwd中查找tcpdump相关的用户信息
grep tcpdump/etc/passwd
-A:显示捕获行之后的行数
-B:显示捕获行之前的行数
-C:显示捕获行前后的行数
-c 显示符合条件的行数
-i 忽略大小写
-n 输出符合条件文件所在行号
-v 不包含关键字的行
grep -v nologin /etc/passwd 查找可以登录的用户
sed与awk
sed介绍
sed参数说明
sed动作
sed示例
查找行,在文件中查找包含22222的行
cat sed.test | sed -n'22222/p'
在文件中添加第三行,内容为hello
sed -e '2a hello world'sed.test
删除行,删除2到3行
cat -n sed.test | sed -e '2,3d'
删除包含22222的行
cat sed.test | sed '/22222/d'
替换行,将1-2行替换为hahaha
cat -n sed.test | sed '1,2c hahaha'
查找并替换字符串,将示例文本中hello替换成haha
sed 's\Hello\Haha\g' sed.test
修改文件本身
sed -i 's\Hello\Haha\g' sed.test
cat sed.test
awk介绍
awk的使用
awk格式
命令行格式:
awk【选项参数】'script' var=value file(s)
script组成:pattern{awk操作命令}
pattern:正则表达式;逻辑判断式
awk操作命令:内置函数:print() printf() getine..;
控制指令:if(){...}else{...};while(){..};
awk内嵌函数使用
awk示例
以:分割,显示/etc/passwd的第一列,即用户名列
cat /etc/passwd | awk -F:'{print $1}'
显示/etcpasswd的第1列和第7列,用逗号分隔显示,所有行开始前添加列名start1,start7,最后一行添加,end1,end7
cat /etc/passwd | awk -F ':' 'BEGIN{print "start1,start7"}{print $1","$7}END {print "end1,end7"}'
匹配某段字符
cat /etc/passwd | awk -F : '$1 ~ /00/'
awk的内置变量
显示/etc/passwd的前五行,显示每行的行号、列数,一级该行完整的内容
head -n5 /etc/passwd | awk -F : '{print NR" " NF " " $0}'