grep常用命令

一.【匹配字符】

. 匹配任意单个字符

[ ] 匹配指定范围内的任意字符

[^] 匹配非指定范围内的任意字符eg: grep '^[^0-9]' file 过滤出非数字开头的行

[:alpha:] 字母字符

[:lower:] 小写字母字符

[:upper:] 大写字母字符

[:digit:] 数字

[:alnum:] 字母数字字符

[:space:] 空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符

[:punct:] 标点字符

[:cntrl:] 控制字符(禁止打印)

[:print:] 可打印字符使用时一般使用两个中括号,具体会在下面的例子中使用。



二.【匹配次数】

* 匹配前面的字符任一次

.* 匹配任意长度的任意字符(注意贪婪模式,比如 grep “r.*t” /etc/passwd )

x\{m,n\} 指定前面的字符至少出现m次,至多出现N次。

x\{m,\} 指定前面的字符至少出现m次

x\{0,n\} 指定前面的字符至多出现N次

x\{m\} 精确匹配m次? 匹配其前面的字符0或1次



三.【锚定符】

1.^ 锚定行首 grep "^r..t" /etc/passwd

2.$ 锚定行尾 grep "h$" /etc/passwd

3.^$ 锚定空白行 grep "^$" /etc/passwd

4..\(\)对字符分组  grep  "\(l..e\).*\1r"

示例:

grep --color "l\([13]\):\1:.*:\1"  /etc/initta



四.【选项】

-v    对结果取反

-i    忽略字母大小写

-o    仅显示匹配到的字符串(行的其他内容不显示)

-E    支持扩展的正则表达式(egrep)

    1)  |  或者

    2) +  次数匹配,匹配其前的额字符一次或者多次

    3) '(oo)'匹配两个oo为一组

   4)? 表示0个或1个前面的字符

-A n    显示匹配到的行下面n行

-B n    显示匹配到的行上面n行

-C n    显示匹配到的行上下面各显示n行

-r     遍历文件

你可能感兴趣的:(grep常用命令)