功能:根据过滤条件逐行匹配,打印匹配到的行。
参数:
--color=auto:显示颜色
�Cc:计算符合过滤条件的行的行数
-i:不区分字符大小写
-o:仅显示匹配到的字符串的本身,并不显示整行
-v:反向选择
-E:使用扩展正则表达式
-q:静默模式,即不输出任何内容(通常用在shell脚本中)
-A n:显示匹配的后n行
-B n:显示匹配的前n行
-C n:显示匹配的前后各n行
�Ch:多文件查询时不显示文件名
-s 不显示不存在或无匹配文本的错误信息。
-l 查询多文件时只输出包含匹配字符的文件名。
[root@Linux_11 ~]# grep root passwd
root:x:0:0:超级管理员:/root:/bin/bash
[root@Linux_11 ~]#
提示:字符串匹配可以不加引号,但是如果是是使用正则表达式或者是扩展正则表达式则一定要使用引号
对匹配到的行计数
[root@Linux_11 ~]# grep -c login passwd
5
[root@Linux_11 ~]#
[root@Linux_11 ~]# grep -i login passwd
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
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
[root@Linux_11 ~]# grep -v login passwd
root:x:0:0:超级管理员:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/noLOGIN
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdon
halt:x:7:0:halt:/sbin:/sbin/halt
提示:显示不包含login的行
[root@Linux_11 ~]# grep -o login passwd
login
login
login
login
login
[root@Linux_11 ~]# grep -n login 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
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
显示匹配到的行的后几行
[root@Linux_11 ~]# grep -A 2 'tmpfs'fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
显示匹配到的行的前几行
[root@Linux_11 ~]# grep -B 2 'tmpfs'fstab
UUID=0b3dbe42-03c3-408a-b634-1b6c60d2640d /home ext2 defaults 1 2
UUID=00d9e852-7ba0-4a6c-b2a8-34a73e2e4881 swap swap defaults 0 0
显示匹配到的行的前后各几行
[root@Linux_11 ~]# grep -C 2 'tmpfs'fstab
UUID=0b3dbe42-03c3-408a-b634-1b6c60d2640d /home ext2 defaults 1 2
UUID=00d9e852-7ba0-4a6c-b2a8-34a73e2e4881 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
[root@Linux_11 ~]# grep -q login passwd
[root@Linux_11 ~]# echo $?
0
[root@Linux_11 ~]# grep -q ogin passwd
[root@Linux_11 ~]# echo $?
0
[root@Linux_11 ~]# grep -q oginnn passwd
[root@Linux_11 ~]# echo $?
1
注意:静默模式不管匹配到了与否,都是不会有输出的,需要使用特殊变量$?进行判断,一般是在shell脚本编程中使用的。(默认是匹配到了有输出,没有匹配到没有输出)
[root@Linux_11 ~]# grep login passwd fstab
passwd:bin:x:1:1:bin:/bin:/sbin/nologin
passwd:daemon:x:2:2:daemon:/sbin:/sbin/nologin
passwd:adm:x:3:4:adm:/var/adm:/sbin/nologin
passwd:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
passwd:uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
fstab:proc /proc proc defaults 0 0 login
##############################################################################
[root@Linux_11 ~]# grep -h login passwd fstab
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
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
proc /proc proc defaults 0 0 login
提示:不显示文件名
##############################################################################
[root@Linux_11 ~]# grep -l login passwd fstab
passwd
fstab
提示:只显示匹配到的文件名
本文出自 “静心&清心” 博客,谢绝转载!