grep命令文本过滤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep命令文本过滤相关的知识,希望对你有一定的参考价值。

1,grep命令
选项说明

--color=auto:对匹配到的文本着色显示;
-v:显示不被模式匹配到的行;
-i:忽略字符大小写;
-n:显示匹配的行号;
-c:统计匹配到的字符串;
-o:仅显示匹配到的字符串;
-q:静默模式,不输出任何信息;
-A #:表示显示匹配到的行并显示该行后#行,#表示为数字;
-B #:表示显示匹配到的行并显示该行前#行,#表示为数字;
-C #:表示显示匹配到的行并显示该行前后各#行,#表示为数字;
-e:实现多个选项的逻辑or或更新;
-w:匹配整个单词;
-E:使用ERE扩展正则,等效于egrep命令;
-F:相当于fgrep,不使用正则表达式;

例1
查找/etc?录下,所有包含conf字串的?件

[root@centos7 /etc]#ls -R |grep conf
asound.conf
autofs.conf
autofs_ldap_auth.conf
brltty.conf
chkconfig.d
chrony.conf

例2
显?/etc/passwd?件中包含root字串所在的?并显??号

[root@centos7 ~]#grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

例3
显?/etc/passwd?件中,不包含bash字串的?,并显??号

[root@centos7 ~]#grep -nv bash /etc/passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
...

例4
显?/etc/passwd?件中,包含root字串的?的总?数

[root@centos7 ~]#grep -c root /etc/passwd
2

例5
仅显?/etc/passwd?件中的root字串及所在的?号

[root@centos7 ~]#grep -no root /etc/passwd
1:root
1:root
1:root
10:root

例6

显?/etc/passwd?件中,包含root字串的?和其下2?的内容

[root@centos7 ~]#grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

例7
显?/etc/passwd?件中,包含root字串的?和其上2?的内容

[root@centos7 ~]#grep -B 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

例8
显?/etc/passwd?件中,包含root字串的?和其上下各2?的内容

[root@centos7 ~]#grep -C 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

例9
扫描192.168.0/24?段,显?在线的ip地址
[root@centos7 ~]#nmap -sP 192.168.0/24 |grep -B1 "Host is up"|grep for|cut -d " " -f 5
192.168.0.1
192.168.0.4
192.168.0.6
192.168.0.5
例10

显?/etc/passwd?件中,包含root字串或包含nologin字串的?

[root@centos7 ~]#grep -e root -e nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
. . .

或写成:

[root@centos7 ~]#grep "root|nologin" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
. . .

例11
匹配root整个单词

[root@centos7 ~]#echo -e  "root
nologin" |grep -w root 
root

[root@centos7 ~]#echo -e  "root
nologin" |grep "<root>"
root
[root@centos7 ~]#echo -e  "root
nologin" |grep "root"
root

以上是关于grep命令文本过滤的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令三剑客之grep常用参数详解

grep命令与正则表达式(过滤)一

Linux常用指令---grep(搜索过滤)(转)

grep命令

grep命令及正则表达式

Linux grep命令用法详解