首页 > 代码库 > grep过滤的详细说明和实例

grep过滤的详细说明和实例

正则表达式的工具有: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后面的数值


技术分享



实例


查看密码文件 cat /etc/passwd 


技术分享


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


grep ‘root‘ /etc/passwd



技术分享

技术分享

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


cat /etc/group | grep ‘root‘ /etc/group


技术分享


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


grep --color ‘root‘ /etc/passwd

技术分享

技术分享



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


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


技术分享

技术分享

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


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


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


vim .bashrc


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


技术分享技术分享


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


cg -c ‘root‘ /etc/passwd


技术分享

技术分享

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


cg -v ‘root‘ /etc/passwd


技术分享技术分享


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


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


技术分享

技术分享

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


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


技术分享

技术分享

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


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


技术分享技术分享




grep过滤的详细说明和实例