正则表达式之grep ,egrep
. 任意一个字符 * 零个或多个*前面的字符 .* 零个或多个任意字符,即所有 egrep + 一个或多个+前面的字符 ? 零个或一个?前面的字符 | 或者 [a-Z] 任意英文字母 [0-9] 任意数字 ^[0-9] 以数字开头 ^[^0-9] 以非数字开头 [0-9]$ 以数字结尾 ^[a-Z] 以英文字母开头 ^[^a-Z] 不以英文字母开头 [a-Z]$ 以英文字母结尾 ‘^$’ 表示空行 ‘^#’ 以#开头 grep 语法:grep [-cinvABC] ‘word’ filename -c 打印符合要求的行数 -i 忽略大小写 -n 打印时连同行号一起显示 -v 取反 -A 后跟一个数字n,打印时连同下面n行一起打印 -B 后跟一个数字n,打印时连同上面n行一起打印 -C 后跟一个数字n,打印时上下n行一起打印 -r 把目录下所有文件遍历一遍 例: 1、grep -n 'root' /etc/passwd //过滤包含关键字的行并显示行号 2、grep -nv 'root' /etc/passwd //过滤不包含关键字的行并显示行号 3、grep -i 'root' 1.txt //过滤关键字时忽略大小写 4、grep -ic 'root' 1.txt //过滤关键字时忽略大小写且只显示行数 5、grep '[0-9]' /etc/passwd //过滤包含数字的行 6、grep -v '[0-9]' 1.txt //过滤不包含数字的行 7、grep -v '^#' 1.txt //过滤以#号开头的行 8、grep -v '^#' 1.txt |grep -v '^$' //去除以#号开头的行和所有空行 9、grep '^[a-Z]' 1.txt //过滤以英文字母开头的行 10、grep '^[^0-9]' 1.txt //过滤以非数字开头的行 11、grep 'r.o' 1.txt //过滤包含任意一个字符的行 12、grep 'r*o' 1.txt //过滤包含零个或多个*前面字符的行 13、grep 'o{2}' 1.txt //过滤字符的次数,2可以随意更改 14、grep 'root' *.txt //显示当前目录下所有txt文件中包含root的行(默认显示文件名) 15、grep -h 'root' *.txt //显示当前目录下所有txt文件中包含root的行,-h 不显示文件名 egrep grep的扩展 1、egrep 'o+' 1.txt //过滤1个或多个+前面的字符 2、egrep '(oo)+' 1.txt //过滤1个或多个‘oo’ 3、egrep 'o?' 1.txt //过滤0个或1个?前面的字符 4、egrep 'roo|body' 1.txt //过滤包含|前面或者后面的字符 5、egrep 'r(o|a)o' 1.txt //过滤包含roo或rao的字符 grep 和egrep 还可以过滤两个或多个关键词 grep -E 'abc|123' 1.txt egrep 'abc|123' 1.txt (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |