grep
Linux grep命令用于查找文件里符合条件的字符串。
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。
语法
grep [参数][查找的字符串][file/directory]
参数
-c 行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出符合要求的行以及上面n行
-C 同上,同时过滤出符合要求的行以及上下各n行
示例
不加参数
-c取行数
-n显示行号
-i不区分大小写
-v取反
-r遍历所有子目录和文件
-A2过滤出要求行下面的2行
-B2过滤出要求行上面的2行
-C2过滤出要求行上下2行
grep '[0-9]' passwd 过滤0~9数字的行(一个数字)
grep -v '[0-9]' /etc/inittab 带数字的行都不要
grep -n '^#' /etc/inittab 过滤以#开头的行
拷贝inittab文件被更改内容,如下:
过滤非#号开头的行(‘^’,以什么开头)
过滤出非数字的行或字符串 ([^]取非)
以非数字开头的行
grep 'r.o' passwd 过滤r.o的行,中间的点可以代表任意一个字符
grep 'o*o passwd 过滤一个o或n个o的行
'.*' 匹配任意一个字符
匹配出现2次o的行
匹配2~3个o的行
egrep 可以脱义,或者grep -E
+号匹配前一个字符出现2次以上的行
?匹配前面一个字符出现0次或1次的行
|匹配root或者nologin的行