egrep


egrep 在文件内查找指定的字符串

egrep执行效果如grep -E使用的语法及参数可参照grep指令。

grep不同点在于解读字符串的方法:

egrep是用extended regular expression语法来解读

grep则用basic regu;ar expression语法

extended regular expressionbasic regular expression有更完整的表达规范

grep默认仅支持基础正则表达式,如果要使用扩展型正则表达式,可以使用 grep -E,不过更建议使用egrep。其实egrepgrep -E是类似命令别名的关系。

RE字符

意义与范例

+

重复一个或一个以上的前一个RE字符

egrep -n ‘go+d’ regular_express.txt

?

零个或一个的前一个RE字符

egrep -n ‘go?d’ regular_express.txt

|

用或(or)的方法找出数个字符串

egrep -n ‘gd|good’ regular_express.txt

( )

找出“组”字符串

egrep -n g(la|oo)d’ regular_express.txt

( )+

多个重复组的判别

echo ‘AxyzxyzxyzxyzC’ | egrep ‘A(xyz) +C’

找出开头是A结尾是C,中间有一个以上的xyz字符串的意思

命令实践:

[root@yubing ~]# nl /etc/passwd

    1  root:x:0:0:root:/root:/bin/bash

    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

    7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    8  halt:x:7:0:halt:/sbin:/sbin/halt

    9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

   10  news:x:9:13:news:/etc/news:

   11  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

   12  operator:x:11:0:operator:/root:/sbin/nologin

   13  games:x:12:100:games:/usr/games:/sbin/nologin

   14  gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

   15  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

   16  nobody:x:99:99:Nobody:/:/sbin/nologin

   17  nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

   18  vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

   19  rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

   20  mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

   21  smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

   22  oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

   23  pcap:x:77:77::/var/arpwatch:/sbin/nologin

   24  ntp:x:38:38::/etc/ntp:/sbin/nologin

   25  dbus:x:81:81:System message bus:/:/sbin/nologin

   26  avahi:x:70:70:Avahi daemon:/:/sbin/nologin

   27  sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

   28  rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

   29  nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

   30  haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

   31  avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin

   32  xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin

   33  yubing:x:500:500::/home/yubing:/bin/bash

[root@yubing ~]#

[root@yubing ~]# egrep -n "g*" /etc/passwd  会将含有g字符的所有行显示出来

1:root:x:0:0:root:/root:/bin/bash               效果等同于grep

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

7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

8:halt:x:7:0:halt:/sbin:/sbin/halt

9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

10:news:x:9:13:news:/etc/news:

11:uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

12:operator:x:11:0:operator:/root:/sbin/nologin

13:games:x:12:100:games:/usr/games:/sbin/nologin

14:gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

15:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

16:nobody:x:99:99:Nobody:/:/sbin/nologin

17:nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

18:vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

19:rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin

20:mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

21:smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

22:oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin

23:pcap:x:77:77::/var/arpwatch:/sbin/nologin

24:ntp:x:38:38::/etc/ntp:/sbin/nologin

25:dbus:x:81:81:System message bus:/:/sbin/nologin

26:avahi:x:70:70:Avahi daemon:/:/sbin/nologin

27:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

28:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

29:nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

30:haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

31:avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin

32:xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin

33:yubing:x:500:500::/home/yubing:/bin/bash

[root@yubing ~]#

[root@yubing ~]# egrep 'po+l' /etc/passwd   重复1个或1个以上的o

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

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

[root@yubing ~]# egrep 'po?l' /etc/passwd    0个或1o,显示没找到

[root@yubing ~]# egrep 'poo?l' /etc/passwd    再加一个o就找到了

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

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

[root@yubing ~]#

[root@yubing ~]# egrep -n "99|51" /etc/passwd      9951  

16:nobody:x:99:99:Nobody:/:/sbin/nologin

21:smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

[root@yubing ~]#

[root@yubing ~]# egrep "p(o)+l" /etc/passwd    开始是p中间有1个以上o,结尾是l

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

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

[root@yubing ~]#