grep过滤用法介绍(二)

背景:(1)alias cgrep=‘grep --color’

    (2)cp /etc/passwd  1.txt

1、 cgrep -n ‘root’ 1.txt 包含root所在,行数。

wKioL1jOSe-j6Z89AAALgeQK9tM533.png-wh_50

2、 cgrep -v 'nologin' 1.txt 不包含nologin。

wKiom1jOSmfRVyEqAAAPq0vMcCE409.png-wh_50

3、 cgrep '[0-9]' 1.txt 包含所有0-9中间数字包含任意一个的行。

wKioL1jOSunjYMrDAAAXBtj3TH4874.png-wh_50

4、 cgrep '[a-zA-Z]' 1.txt 过滤所有字母。

wKiom1jOS6Pg7ftJAAAXPB8s-cY547.png-wh_50

5、cgrep '^[a-z]' 1.txt 过滤以小写字母开头的行。

wKiom1jOTjSBAUsvAAAWCIhQqiw937.png-wh_50

6、cgrep ‘^[^0-9]’2.txt 与 cgrep -v ‘^[0-9]’2.txt 区别,如下图截图:

wKioL1jObfHSqp9xAAAY9WkOGJE795.png-wh_50

[]里面的^表示取非!上例表示不以数字开头的行!

7、如何表示空行,^表示开头 $表示结尾

cgrep '^$' 1.txt 表示空行

8、cgrep -v '^$' 1.txt 空行之外的行

9、必记知识点:

.表示任意一个字符,如:字母,符号,空格,数字,#

*表示零个或多个星号前面的字符,如:r*o 则:o ro rro,。。。

+表示一个或多个加号前面的字符,如:r+o 则:ro rro  rrro(egrep使用)

?表示一个或零个问号前面的字符,如:r?o,则:o ro(egrep使用)

.*任意的,贪婪匹配

grep的遍历:grep -r ‘root’ /etc/*

注意:

其中+和?grep不支持,只有egrep支持

grep -E==egrep

wKioL1jOcGijCXZ7AAAUvOkBy2M313.png-wh_50