一、介绍
grep 是一个基于正则表达式的全局文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行过滤,显示匹配到的行。
二、格式
grep [options] pattern filename
grep适合单纯的查找或匹配文本,且区分大小写的。
三、参数[options]
-a 不忽略二进制数据
-i 不区分大小写,忽略字符大小写
-v 取反,显示不被pattern匹配到的行
-V 显示版本信息
-n 显示匹配结果的行号
-c 统计匹配结果的行数
-o 仅显示匹配到的字符串,不把整行显示出来
-e 实现多个选项的匹配,逻辑or关系
-q 静默模式,不输出任何信息。与"echo $"合用,查看是否匹配到,0表示匹配到,1表示没有匹配到
-Ax: 显示匹配结果所在行以及该行之后的指定行数,x是行数,A:after。
-Bx: 显示匹配结果所在行以及该行之前的指定行数,x是行数,B:before。
-Cx: 显示匹配结果所在行以及该行之前和该行之后的指定行数,x是行数,C:context
--color 显示颜色
-E 使用扩展正则表达式,相当于egrep
-w 匹配整个单词,如果是字符串中包含这个单词,则不作匹配
-l 列出匹配字符串的文件名
-L 列出不匹配字符串的文件名
四、范例
[root@localhost ~]# grep "root" /etc/passwd # 找到root所在的所有行并显示
[root@localhost ~]# grep -v "root" /etc/passwd # 找到除root外的所有行并显示
[root@localhost ~]# grep -n "root" /etc/passwd # 显示行号
[root@localhost ~]# grep -c "root" /etc/passwd # 显示匹配结果的行数
[root@localhost ~]# grep -A2 "root" /etc/passwd # 匹配含有root的行,以及该行的后两行
[root@localhost ~]# grep -e "root" -e "myuser" /etc/passwd