grep 文本过滤
1.命令功能
grep, egrep, fgrep - print lines matching a pattern 根据匹配模式空间(正则表达式)打印结果行。
2.语法格式
grep [option] [pattern] [file]
grep 选项 模式 文件
grep [option] [-e pattern | -f file] [file]
grep 选项 增强正则 文件
grep选项说明
参数 |
参数说明 |
-E |
后面接的匹配模式就是扩展正则表达式 grep –E =egrep |
-i |
比较字符时忽略大小写区别 |
-w |
只匹配过滤出的单词。把表达式作为词来查找,相当于正则中的”\<..\>” |
-x |
被匹配到的内容,正好是整个行,相当于正则”^...$” |
-v |
取反,输出的内容与定于模式相反的内容 |
-c |
count统计,统计配结果的行数 |
-o |
只显示匹配的内容,该行的其他内容不输出 |
-R |
递归匹配。主要匹配目录下的多个文件内容 |
3.使用范例
[root@localhost ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
suroot : X:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x::ADM:/var/adm:/sbin/nologin
Adm:x:3:4:abmIn:/var/adm:/sbin/nologin
lp x lp var/spool/lpd:/sbin/
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
示例1 匹配以‘axm’,a开始,m结束,中间任意字符的行
示例2 查询以root开头的行
示例3 查找以bash结尾的行
示例4 查找包含A或p字符的行
示例5 查找不包换a-z和B-Z的内容
示例6 只查询特殊字符,不包括字母,数字