[关闭]
@zhaikun 2015-11-24T15:46:21.000000Z 字数 2707 阅读 970

grep

命令总结


grep

grep:根据模式搜索文本,并符合模式的文本显示出来
pattern:文本字符和正则表达式组合成匹配

  1. [root@yunweibutest001 ~]# grep 'popt' --color ./install.log
  2. Installing popt-1.10.2.3-27.el5.x86_64
  3. Installing popt-1.10.2.3-27.el5.i386

选项

-i 表示忽略大小写
--color 高亮显示匹配字符串
-v 显示没有被匹配的字符串
-o 只显示被动模式匹配到的字符串

  1. [root@yunweibutest001 ~]# grep 'popt' -o ./install.log
  2. popt
  3. popt

*:表示任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[:digit:] [:lower:] [:upper:] [:punct:] [:alpha:] [:alnum:]
数字 小写字母 大写字母 标点符号 所有字母 所有字符和字母
元字符
.:表示任意单个字符

  1. [root@yunweibutest001 ~]# grep 'p..t' ./install.log
  2. Installing popt-1.10.2.3-27.el5.x86_64
  3. Installing psutils-1.17-26.1.x86_64
  4. Installing iptstate-1.4-2.el5.x86_64
  5. Installing popt-1.10.2.3-27.el5.i386
  6. Installing kpartx-0.4.7-48.el5.x86_64
  7. Installing gphoto2-2.2.0-3.el5.x86_64
  8. Installing tmpwatch-2.9.7-1.1.el5.5.x86_64
  9. Installing parted-1.8.1-29.el5.x86_64
  10. Installing portmap-4.0-65.2.2.1.x86_64
  11. Installing pygtk2-2.10.1-12.el5.x86_64
  12. Installing pygtk2-libglade-2.10.1-12.el5.x86_64
  13. Installing parted-1.8.1-29.el5.i386
  14. Installing 1:yum-updatesd-0.9-2.el5.noarch
  15. Installing gnome-python2-applet-2.16.0-3.el5.x86_64
  16. Installing 1:gnome-applets-2.16.0.1-19.el5.x86_64

一丶匹配次数:

1、*:匹配当前字符的任意次
a,b,ab,aab,acb,adb,amnb
a*b
只能匹配a,b,aab其他都不可以找到
2、.*:组合起来表示任意长度和任意字符
a.*b表示a开头,b结尾的任意长度任意字符的匹配项
3、?:匹配其前面的字符1次或0次

  1. \{m,n\}:匹配起前面的字符,表示最少几次,最多几次
  2. \{1,\}
  3. \{0,3\}

二丶位置锚定

  1. ^:锚定行首 此字符后面的任意内容出现在行首
  2. $:锚定行尾 此字符后面的任意内容出现在行后
  3. ^$: 空白行
  4. [root@yunweibutest001 ~]# grep 'w$' /etc/inittab
  5. ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  6. W结束的行
  7. [root@yunweibutest001 ~]# grep 'b..h$' /etc/passwd
  8. root:x:0:0:root:/root:/bin/bash
  9. zhaik:x:501:502::/home/zhaik:/bin/bash
  10. 111:x:60001:60001::/home/111:/bin/bash
  11. mysql:x:502:503::/home/mysql:/bin/bash
  12. nagios:x:503:504::/home/nagios:/bin/bash
  13. apache:x:504:506::/home/apache:/bin/bash
  14. ftpvirtuser:x:505:507::/home/ftp:/bin/bash
  15. ^$空白行例子
  16. [root@yunweibutest001 ~]# grep '^$' /etc/inittab
  17. [root@yunweibutest001 ~]#
  18. 以数字结尾的行
  19. [root@yunweibutest001 ~]# grep '[[:digit:]]$' /etc/inittab
  20. # 5 - X11
  21. l0:0:wait:/etc/rc.d/rc 0
  22. l1:1:wait:/etc/rc.d/rc 1
  23. l2:2:wait:/etc/rc.d/rc 2
  24. l3:3:wait:/etc/rc.d/rc 3
  25. l4:4:wait:/etc/rc.d/rc 4
  26. l5:5:wait:/etc/rc.d/rc 5
  27. l6:6:wait:/etc/rc.d/rc 6
  28. 1:2345:respawn:/sbin/mingetty tty1
  29. 2:2345:respawn:/sbin/mingetty tty2
  30. 3:2345:respawn:/sbin/mingetty tty3
  31. 4:2345:respawn:/sbin/mingetty tty4
  32. 5:2345:respawn:/sbin/mingetty tty5
  33. 6:2345:respawn:/sbin/mingetty tty6
  34. # Run xdm in runlevel 5
  35. 以数字结尾的前面是空格列出来
  36. [root@yunweibutest001 ~]# grep '[[:space:]][[:digit:]]$' /etc/inittab
  37. l0:0:wait:/etc/rc.d/rc 0
  38. l1:1:wait:/etc/rc.d/rc 1
  39. l2:2:wait:/etc/rc.d/rc 2
  40. l3:3:wait:/etc/rc.d/rc 3
  41. l4:4:wait:/etc/rc.d/rc 4
  42. l5:5:wait:/etc/rc.d/rc 5
  43. l6:6:wait:/etc/rc.d/rc 6
  44. # Run xdm in runlevel 5\
  45. \<或者\b:其后面的任意字符必须作为单词的首部出现
  46. [root@yunweibutest001 ~]# grep "root\>" test1.txt
  47. This is root.
  48. The user is mroot
  49. chroot is a command
  50. mroot is not a wrod
  51. \>或者\b:其前面的任意字符必须作为单词的尾部出现
  52. [root@yunweibutest001 ~]# grep "\<root" test1.txt
  53. This is root.
  54. rooter is a dog's name

分组

  1. \(\)
  2. \(ab\)* ab为组
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注