运维三剑客---grep、sed、awk

1.grep

grep 过滤的几种用法,按照后缀参数

-n:显示行号

-o:只显示匹配的内容

-q:后台模式,没有任何输出。

如果需要查看是否执行成功,可以使用$? -----------------> 显示0即执行成功,非0即执行失败

-A:显示成功内容以及后几行

-B:显示成功内容以及前几行

-C:显示成功内容以及前后几行

-c:显示具体匹配成功了多少行

-i:忽略大小写

-w:匹配单词(连续的字母大小写)

-v:过滤掉不相关的内容,后续可以匹配正则表达式(示例中过滤了#开头以及‘空格’ 内容)

 

 2.sed用法:

sed -r ‘s/(正则)(正则)(正则)/\1\2\3/参数’  文件名称

参数包含如下:

a:追加内容

i:插入内容

c:修改内容

d:删除内容

p:打印内容

g:将整行内容全部修改(如果不加g,则只修改整行内第一个内容)

 

3.awk:

awk -F :(分隔符)  '{print  $1,$2}'  文件名          ($0表示取所有)

($0表示取所有)

(NF表示多少分隔符的内容)

(NR表示行号)

 

awk -F: 'NR==1{print $1}' 2.txt  只打印第一行内容

akw -F: 'NR==1 {print,"............" $1}' 2.txt 自定义出入格式

akw -F: 'NR>=3&& NR<=5 {print,"............" $1}' 2.txt  处理第三行到第五行之间的内容

akw -F: 'NR<=3|| NR>=5 {print,"............" $1}' 2.txt   处理小于等于3行或者大于等于5行的内容

配合正则如下:

awk -F: '/nologin$/{print $1}' 2.txt           //之间存放正则表达式,处理以nologin结尾的内容

awk -F: '$1~/^r.*t$/{print NR,$3}' 2.txt   匹配第一个字符内容中的以r开头 t结尾的内容

awk -F: '$3>=3 {print NR,$1}' 2.txt   匹配第三个内容大于等于3的内容,打印行号和第一个字符

count=3

awk -v x=$count -F:'$3>=x {print NR,$0}' 2.txt  定义count变量,然后在awk中取变量,处理数据

 -F 如果不指定内容,则以空格或者多个空格为分隔符。

灵活取IP地址:

还可以多个连着用,简直牛批

 

posted @ 2017-08-11 16:51  大光头哥  阅读(664)  评论(0编辑  收藏  举报