1. grep/egrep
-c :打印符合要求的行数
-n :在输出符合要求的行的同时连同行号一起输出
-v :打印不符合要求的行
-r : 会把目录下面所有的文件全部遍历一遍
-i : 忽略大小写
2. 例子介绍
过滤出带有某个关键词的行并输出行号 grep –n ‘root’ 1.txt
过滤出不带有某个关键词的行并输出行号 grep –n –v ‘root’ 1.txt
过滤出所有包含数字行 grep –n ‘[0-9]’ 1.txt
过滤出所有不包含数字的行 grep –n –v ‘[0-9]’ 1.txt
去除所有以‘#’开头的行 grep –v ‘^#’ 1.txt
去除所有空行和以‘#’开头的行 grep –v ‘^$’ 1.txt | grep –v ‘^#’
过滤出以英文字母开头的行 grep –v ‘^[a-zA-Z]’ 1.txt
统计次数 grep –o ‘root’ 1.txt | wc –l
把出现的下两行打印出来 grep –A2 –n ‘root’ 1.txt
搜索etc目录下某个关键词的所有文件 grep –r ‘root’/etc/
指定过滤字符次数 grep ‘o\{2\}’passwd
过滤任意一个或多个字符 grep ’r.o’ passwd ; grep ‘r*t’ passwd ; grep ‘r.*t’ passwd
.表示任意一个字符; *表示0个或多个前面的字符; .*表示0个或多个任意字符,空格也包含在内
以n结尾的字符 grep –n ‘n$’ 1.txt
+和?比较特殊,如果在grep中使用要-E或者转义
3. egrep = grep –E
egrep工具是grep的扩展
表示1个或1个以上前面的字符 egrep ‘o+’ 1.txt
表示0个或1个前面字符 egrep ‘o?’ 1.txt
匹配roo或者body egrep ‘roo|body’ 1.txt
用括号表示一个整体 egrep ‘r(oo)|(at)o’ 1.txt
表示1个或多个’oo’ egrep ‘(oo)+’ 1.txt