| 
       
	grep简介:  
	grep是用来过滤含有特定字符的行, 能使用正则表达式搜索文本, 它在数据中查找一个字符串时, 是以正行为单位进行数据选取的. 
	用法: grep [cinvs] 'pattern' file 
	例如: grep -n 'bbb' aaa.txt --color  # 从文件aaa.txt中搜索关键词bbb, 并显示行号和高亮显示。 
	[ 常用选项: ] 
	  
	-c:只输出匹配行的计数。 
	-i:不区分大小写(只适用于单字符)。 
	-n:显示匹配行及行号。 
	-s:不显示不存在或无匹配文本的错误信息。 
	-v:显示不包含匹配文本的所有行。 
	[ 正则元字符: ] 
	  
	grep可以结合正则表达式使用, 下面介绍一些常用的正则表达式过滤字符的用法。 
	\ :转义字符,忽略正则表达式中特殊字符的原有含义。 
	^ :匹配以某个字符串开始的行。 
	$ :匹配以某个字符串结束的行。 
	\<:匹配单词的开始。 
	\>:匹配单词的结束。 
	[ ]:在[]内某单个字符,如[A]即表示 A 符合要求。 
	[ - ]:属于[ - ]所标记的范围字符,如[A-Z],即A、B、C一直到Z都符合要求。 
	. :表示一定有1个任意字符。 
	* :前面字符可以出现任意次。 
	? :前面字符出现0次或1次。 
	+ :前面字符出现一次或多次。 
	[ 正则示例: ] 
	1.  ^表示行开头 
	     grep   '^bbb'   aaa.txt  --color   # 从文件aaa.txt中查找以bbb开头的行。 
	2.  $表示行结尾 
	     grep   'bbb$'   aaa.txt  --color  # 从文件aaa.txt中查找以bbb结尾的行。 
	3.  .表示单个字符, 它可以匹配除换行符之外的所有字符。 
	     grep   'bbb...'   aaa.txt  --color  # 从文件aaa.txt中查找bbb后面含有三个字符的行, '点'可以匹配空格。 
	4.  * 表示它前面的那个字符可以出现任意次 
	     grep   'bbb.*'   aaa.txt  --color  # 从文件aaa.txt中查找bbb后面有任意个字符的行。 
	5.  + 表示它前面的那个字符至少要出现一次 
	     grep  -E  'bbb.+' aaa.txt --color# 从文件aaa.txt中查找bbb后面至少会出现一个字符的行。 
	6.  ? 表示它前面的那个字符可以有也可以没有 
	     grep -E 'bbbc?' aaa.txt --color # 从文件aaa.txt中查找存在bbb或bbbc的行。 
	     注意: grep不支持 + 、? 这两个元字符, 如果想使用, 只能使用扩展的grep  (egrep 或 grep -E) 
	7.  [ ] 表示匹配一个字符, 出现在[ ]里面的字符都是或的关系 
	     grep  '^[Bb]bb'  aaa.txt  --color             # 从文件aaa.txt中查找以Bbb或bbb开头的行。 
	     grep '[0-9]' aaa.txt --color       # 从文件aaa.txt中查找含有数字的行 
	     grep -P '\d' aaa.txt --color       # 从文件aaa.txt中查找含有数字的行, -P表示使用perl的正则表达式 
	      
	     \d表示数字, \D表示非数字 
	     \s表示空格或tab, \S表示不是空格或tab 
	     \w表示任意字符(大小写字母、数字、下划线), \W表示不是字母、数字、下划线。 
	     注意: ^ 出现在 [ ] 外面的话表示'开头', 如果出现在 [ ] 里面的话表示'否定' 
	     grep '^[^Bb]..' aaa.txt  --color # 从文件aaa.txt中查找不是以B或b开头, 而且后面还有两个字符的行。 
	8.  \< 匹配单词的开头 
	     grep '\<Tom' aaa.txt --color    # 从文件aaa.txt中查找单词以Tom开头的行。 
	9.  \> 匹配单词的结束 
	     grep '\>Tom' aaa.txt --color   # 从文件aaa.txt中查找单词以Tom结尾的行。 
	10.  匹配某个单词, 而不是某个字符串的一部分 
	     grep '\bTom\b' aaa.txt --color            # 从文件aaa.txt中查找含有单词Tom的行, 如果是aTomb之类的忽略掉。 
	11.  用\(\)做标签, 后面想引用就用\n (n是一个数字), \1表示第一个被引起来的 
	     grep '\(tom\)...\1' aaa.txt --color        # 从文件aaa.txt中查找tom, 且它的后面有三个字符, 然后还有一个tom的行. 如: tomxxxtom 
	12.  \{n\} 表示前面的字符要出现n次 
	     grep 'tomx\{3\}' aaa.txt --color         # 从文件aaa.txt中查找tomx, x要出现3次, 如: tomxxx 
	     grep 'tomx\{3,\}' aaa.txt --color        # 从文件aaa.txt中查找tomx, x至少要出现三次, 如tomxxx 或 tomxxxx 
	     grep 'tomx\{3,4\}' aaa.txt --color      # 从文件aaa.txt中查找tomx, x出现3次或4次, 如tomxxx 或 tomxxxx 
      (责任编辑:IT) |