grep [options] [pattern] [file]
参数选项 | 解释说明 |
-v | 排除不包括匹配文件的内容 |
-n |
显示匹配行及行号 |
-i | 不区分大小写(只适用于单字符),默认区分大小写 |
-c | 只统计匹配的行数,注意不是次数 |
-E | 使用扩展的egrep命令 |
--color=auto | 为grep匹配过的字符串添加颜色 |
-w | 只匹配过滤的单词 |
-o | 只输出匹配的内容 |
1)grep -v "oldboy" test1.txt
#过滤不包含oldboy的字符,默认是以行为单位,排除包含过滤字符的行。
2)grep -n "oldboy" test1.txt
#输出包含oldboy字符的行,并显示出行号。
3)grep -i “alex” test2.txt
#使用-i参数不区分大小写过滤alex。
4)grep -Ei --color=auto "oldboy|alex" test2.txt
#不区分大小写同时过滤oldboy和alex,并增加颜色显示。
5)grep -c “oldboy” test2.txt
#计算匹配oldboy字符串的数量。
6)grep -o “oldboy” test2.txt
#只输出匹配的内容。
7)grep -w “oldboy” /etc/passwd
#只匹配过滤的单词,如果不加-w,则与过滤单词相似的行业会被显示出。
sed [选项] [sed内置命令字符] [输入文件]
参数选项 | 解释说明 |
-n | 取消默认的sed输出,常与sed内置命令的p连用 |
-i | 直接修改文件的内容而不是输出到终端。 |
sed内置命令字符 | 解释说明 |
a | append 在指定的行后追加一行或多行文本 |
d | delete 表示删除匹配行的文本 |
i | insert 在指定的行前插入一行或多行文本 |
p | print 表示打印匹配行的内容 |
s/regexp/replacement/g |
替换,后替换前,g表示全局替换 |
N | 不会清空模式空间的内容,并且从输入文件中读取下一行,追加到模式空间中 |
1)sed ‘2a 106,dandan,CSO‘ persons.txt
#在persons.txt文件的第二行后追加一行内容106,dandan,CSO;
#如果a参数还成i则是在行前插入106,dandan,CSO;
#如果要在2行后追加多行,则内容A和内容B之间要使用/n换行;
2)sed ‘2d‘ person.txt
#删除person文件中的第二行;
3)sed ‘2,5d‘ person.txt
#删除person文件中的第二到第五行;
4)sed ‘s#zhangyao#dandan#g‘ person.txt
#将person.txt文件中的所有zhangyao替换成dandan;
5)sed -n ‘2p‘ person.txt
#打印person.txt的第二行内容,这里一定要加-n参数,否则会默认打印出文件所有内容;
6)sed ‘N;s#\n#=#g‘ test.txt
将转换如下两种格式;
aaaaaa
bbbbb
aaaaaa
bbbbb
aaaaa=bbbbb
aaaaa=bbbbb
awk [option] ‘pattern{action}‘ file
参数选项 | 解释说明 |
-F | 指定字段分隔符 |
-v | 定义或修改一个awk的内部变量 |
1)awk ‘NR==5‘ jet.txt
#打印显示第5行内容
2)awk ‘NR==2,NR==6‘ jet.txt
#打印显示第2行到第6行的内容
3)awk ‘{print NR,$0}‘ jet.txt
#用awk实现每行内容之前加上行号
4)awk ‘NR==3,NR==6 {print NR,$0}‘ jet.txt
#用awk实现显示第三行到第六行内容之前加上行号
5)awk -F “:” ‘{print $1,$3,$NF}‘ jet.txt
#显示jet文件的第一列,第三列,最后一列
6)awk‘{gsub("/sbin/nologin","/bin/bash",$0);print $0}‘ jet.txt
#把文件中的/sbin/nologin替换成为/bin/bash;
#gsub函数的格式如下:
gsub("替换对象","替换成什么内容",哪一列)
①gsub与后面的括号之间不能有空格;
②"替换对象","替换成什么内容",哪一列之间要用逗号分隔开;
③替换对象和被替换对象需要用“”包起来,用逗号隔开;
④最后一列可以省略,相当于写上了$0,$0代表整行内容;
7)ifconfig eth0 | awk -F "(addr:) | ( Bcast:)" ‘NR==2{print $2}‘ 或 ifconfig eht0 | awk -F "[ :]+" ‘NR==2{print $4}‘
#提取ifconfig中的IP地址
8)awk -F "/" ‘{print $3}‘ jet.txt | sort | uniq -c
#取出jet文件中的域名,并排序,然后去重计数;
原文:https://www.cnblogs.com/wangzengyi/p/12405195.html