正则表达式的工具有:grep egrep sed awk



1.grep作用

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。可以过滤指定的行




2.格式

grep [options]


3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求 。

[0-9]:表示数字

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的单个字符。

* :有字符,长度可以为0,可以匹配多个字符。

.表示任意一个字符

.*表示任意一个任意字符,s.*d s开头d结尾的都可以匹配上

\?表示脱意符号前面的字母可以匹配 s\?d 指显示脱意符前面的s或者单独d开头的

? +用于egrep


-r:匹配目录

--color:用颜色标注

-A:不仅可以显示匹配的行还可以多显示下面几行,具体行数取决于A后面的数值

-B:不仅可以显示匹配的行还可以多显示上面几行,具体行数取决于B后面的数值

-C:不仅可以显示匹配的行还可以多显示上下各几行,具体行数取决于C后面的数值


spacer.gif



实例


查看密码文件 cat /etc/passwd 


wKioL1hJS56Ct-zSAACsq5mKqPA354.png-wh_50


例1:过滤出/etc/passwd下的root的行


grep 'root' /etc/passwd



wKiom1hJS6fAbrTQAAATWs0b1IU858.png-wh_50

spacer.gif

例2:显示并过滤出/etc/grpup下的root的信息


cat /etc/group | grep 'root' /etc/group


wKioL1hJS6-DvmeTAAAI4eZMVRI652.png-wh_50


例3:过滤出/etc/passwd下的root的信息并用颜色标注


grep --color 'root' /etc/passwd

spacer.gif

wKiom1hJS7mRgMDnAAAPh4WsgVc611.png-wh_50



例4:过滤出/etc/passwd下的root的信息并用颜色标注切标注出行数


grep --color -n 'root' /etc/passwd


wKiom1hJS8CTUdSvAAAQeY6KKhw615.png-wh_50

spacer.gif

注意:因为grep --color使用频率比较高所有可以做临时别名设置


设置方法:alias cg='grep --color'


如果想要永久设置别名的方法是


vim .bashrc


添加一行 alias cg='grep --color'


spacer.gifwKioL1hJS9GQk7tWAAAsJDHQlu4546.png-wh_50


例5:过滤出/etc/passwd下的root的信息,并只显示行数


cg -c 'root' /etc/passwd


wKioL1hJS-2j1AKWAAAG-toCEhY708.png-wh_50

spacer.gif

例6:过滤出/etc/passwd下不包含root的信息的行


cg -v 'root' /etc/passwd


spacer.gifwKiom1hJS_mTVomaAABOFj7D2KY890.png-wh_50


例7:过滤出/etc/passwd下关于root的信息并多显示下面三行的信息


cg -n -A 3 'root' /etc/passwd


wKioL1hJTALD7wSHAAAxEcyvFhQ059.png-wh_50

spacer.gif

例8:过滤出/etc/passwd下关于root的信息并多显示上面四行的信息


cg -n -B 4 'root' /etc/passwd


wKioL1hJTBHB0nZ-AAAlGEznPVs501.png-wh_50

spacer.gif

例9:过滤出/etc/passwd下关于games的信息并多显示上下二行的信息


cg -n -C 2 'games' /etc/passwd


spacer.gifwKiom1hJTCfC7JQ6AAAjN_uKjDY116.png-wh_50