首页 > 代码库 > 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过滤的详细说明和实例