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

扫描二维码关注公众号,回复: 11970802 查看本文章

显⽰/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\nnologin" |grep -w root 
root

[root@centos7 ~]#echo -e  "root\nnologin" |grep "\<root\>"
root
[root@centos7 ~]#echo -e  "root\nnologin" |grep "\broot\b"
root

猜你喜欢

转载自blog.51cto.com/14233656/2542983