grep基础用法

grep基础用法

功能:根据过滤条件逐行匹配,打印匹配到的行。

 

参数:

  • --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 ~]#

提示:字符串匹配可以不加引号,但是如果是是使用正则表达式或者是扩展正则表达式则一定要使用引号

 

实例:-c参数的使用

对匹配到的行计数

[root@Linux_11 ~]# grep -c login passwd

5

[root@Linux_11 ~]#

 

实例:-i参数的使用

[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

 

 

实例:-v参数的使用

[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的行

 

实例:-o参数的使用

[root@Linux_11 ~]# grep -o login passwd

login

login

login

login

login

 

 

实例:-n显示行号(注意:显示的是原文件中的行号,并不是重新编排的行号)

[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

 

 

实例:-A参数的使用(after

显示匹配到的行的后几行

 

[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

 

 

实例:-B参数的使用(before

显示匹配到的行的前几行

 

[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

 

实例:-C(大写)参数的使用

显示匹配到的行的前后各几行

 

[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

 

 

实例:-q(静默模式)参数的使用

[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

提示:只显示匹配到的文件名


本文出自 “静心&清心” 博客,谢绝转载!

你可能感兴趣的:(grep)