grep
[options]主要参数:
-c:只输出匹配行的计数。
-i:进行匹配时不区分大小写(只适用于单字符)
-h:查询多文件时只输出匹配的字符,不显示文件名
-l:查询多文件时只输出匹配字符的文件名
-L:查询多文件时只输出不匹配字符的文件名
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
-o:输出精确匹配的字符而不是默认的整行,不能和-v 一起用
-w:只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
-B: 除了显示匹配的一行之外,并显示改行之前的num行
-A: 除了显示匹配的一行之外,并显示改行之后的num行
-C: 除了显示匹配的一行之外,并显示改行之前后的num行
-E: 匹配多个字符串 (大写的E)
正则表达式:
标准字符类:
常用grep实例
多个文件查询
grep “str” *.doc输出匹配行的计数
grep -c “str” data.doc显示匹配的行以及行数
grep -n “str” data.doc显示非匹配的行
grep -v “str” data.doc大小写敏感匹配
grep -i “Ab” data.doc精准匹配
grep -o “str” data.doc单词匹配
grep -w “str” data.doc多项匹配
grep -E “str1|str2” data.doc
正则表达式的应用
[] 和 .的使用
grep ‘[239].’ data.doc #输出所有含有2或者3或者9 + 任意字符的行
grep ‘[vV]ick’ data.doc #输出所有含有vick或者Vick的行^
grep ‘^[^48]’ data.doc #匹配行首不是48的行¥
grep ‘abc$’ data.doc #匹配行尾是abc的行^¥(应该是美元符)
grep ‘^..$’ data.doc #匹配只有两个任意字符的行{}
grep ‘abc{3}’ data.doc #匹配满足abcccc的行\
grep ‘192\.168\.0\.1’ data.doc #对特殊字符进行转义类名
grep ‘5[[:upper:]][[:upper:]]’ data.doc #匹配以5开头以两个大写字母结尾的行
未完待续