本文共 2388 字,大约阅读时间需要 7 分钟。
Linux命令三剑客之grep
介绍grep在三剑客中排行老三,是一个简单文本过滤命令,除了grep本身外还有两种扩展grep。grep:文本过滤(基础版)egrep:扩展文本过滤fgrep:快速文本过滤语法语法:grep [option...] pattern-spec filename参数
范本样式=条件-c 计算符合条件的行数。[root@bogon ~]# grep -c "^$" /etc/init.d/sshd 20[root@bogon ~]#
-E使用扩展正则表达式。
[root@bogon ~]# grep "ro?t" /etc/passwd “?”需要使用扩展正则才生效[root@bogon ~]# grep -E "ro?t" /etc/passwdvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin[root@bogon ~]# grep "root" /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@bogon ~]# grep "ro+t" /etc/passwd [root@bogon ~]# grep -E "ro+t" /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin[root@bogon ~]#
-i 模式匹配时忽略大小写差异。
[root@bogon tmp]# cat test.txt root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinROOT adfg gadg adgroot 1242 13542[root@bogon tmp]# grep "^root" test.txt root:x:0:0:root:/root:/bin/bashroot 1242 13542[root@bogon tmp]# grep -i "^root" test.txt root:x:0:0:root:/root:/bin/bashROOT adfg gadg adgroot 1242 13542[root@bogon tmp]#
-v 反转查找。显示不匹配模式的行
[root@bogon tmp]# grep -v "^root" test.txt bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinROOT adfg gadg adg[root@bogon tmp]#
-w 只显示全字符合的行。
[root@bogon tmp]# grep -w "root" test.txt root:x:0:0:root:/root:/bin/bashroot 1242 13542[root@bogon tmp]#
-o 只输出文件中匹配到的部分,不按行显示
[root@bogon tmp]# grep -w "root" test.txt root:x:0:0:root:/root:/bin/bashroot 1242 13542[root@bogon tmp]#
-n :打印行号【对匹配的行打印行号】
[root@bogon tmp]# grep -n "daemon" test.txt 3:daemon:x:2:2:daemon:/sbin:/sbin/nologin[root@bogon tmp]#
-q 不显示任何信息。静默的,如果匹配成功,不将匹配的行输出到标准输出;否则即是不成功
-s 不显示错误信息。常与-q连用-a 不要忽略二进制数据。-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。-e<范本样式> 指定字符串作为查找文件内容的范本样式。-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。-F 将范本样式视为固定字符串的列表。-G 将范本样式视为普通的表示法来使用。-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。-H 在显示符合范本样式的那一列之前,标示该列的文件名称。-l 列出文件内容符合指定的范本样式的文件名称。-L 列出文件内容不符合指定的范本样式的文件名称。-R/-r 此参数的效果和指定“-d recurse”参数相同。-x 只显示全列符合的列。-y 此参数效果跟“-i”相同。-P 将模式解释为Perl正则表达式grep学习扩展
1、grep --color=auto :表示匹配到的内容用颜色标记出来,颜色默认红色转载于:https://blog.51cto.com/13691477/2116050