grep语法

grep 根据模式搜索文本,并将符合模式的文本显示出来
Pattern 文本字符串和正则表达式的元字符组合而成匹配条件

grep [option] Pattern [file...]

1、查找带有root字符的行
grep 'root' /etc/passwd
2、查找带有root字符的行并高量显示
grep --color 'root' /etc/passwd
3、-v 方向查找,显示没有被匹配到的行
grep -v 'root' /etc/passwd
4、-o 只显示被匹配到的字符串
grep -o 'root' /etc/passwd
5、-A # 把匹配到的行后面的几行也显示
grep -A 2 '^core id' /proc/cpuinfo
6、-B # 把匹配到的行前面的几行也显示
grep -B 2 '^core id' /proc/cpuinfo
7、-C # 把匹配到的行前后面的各几行也显示
grep -C 2 '^core id' /proc/cpuinfo


*:任意长度的任意字符 >=0次
?:任意单个字符 0或1次
[]:指定范围内
[^]:指定范围外

正则表达式:REGular EXPression ,REGEXP
元字符
.:任意单个字符 grep --color 'r..t' /etc/passwd 
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集合:
[:digit:]数字,    [:lower:]小写字符,[:upper:]大写字符,     [:punct:]标点符号
[:space:]空白字符,[:alpha:]所有字符,[:alnum:]所有数字和字符


字符匹配次数:
*:任意其前面的字符任意次
	a , b , ab , aab, acb ,adb , amnb
	a*b : b , ab , aab, acb ,adb , amnb --a可以出现或者不出现
	
	.*:任意长度的任意字符
	a.*b : ab , aab, acb ,adb , amnb
?:任意其前面的字符0或1次
	a\?b : b , ab , aab, acb ,adb , amnb
\{m,n\}:匹配其前面的字符至少m次,至多n次
	\{1,\} 至少一次,多了不限
	\{0,3\} 最多3次,少了不限
	grep 'a\{1,3\}b' grep1.txt
	grep 'a.\{1,3\}b' grep1.txt

位置锚定:
^:	锚定行首,此字符后面的内容必须出现在行首
	grep --color '^root' /etc/passwd
$:	锚定行尾,此字符前面的内容必须出现在行尾
	grep --color 'w$' /etc/inittab
^$: 空白行

\<或\b:锚定词首,其后面的字符必须作为单词的首部出现
\>或\b:锚定词尾,其前面的字符必须作为单词的尾部出现

分组:
\(\)
	\(ab\)* ab可以出现任意次
	向后引用
	\1:
	\2:
	\3:
例子:
	He love his lover.
	She like her liker.
	He like his lover.
	She love her liker.
	She like him.
	
	grep 'l..e' test.txt
	grep 'l..e.*l..e' test.txt
	grep '\(l..e\).*\1' test.txt
	
	查找任意行中出现了一个数字,仍以该数字结尾的行
	grep --color '\([0-9]\).*\1$' /etc/inittab
	egrep --color '([0-9]).*\1$' /etc/inittab
	
	
	
扩展正则表达式grep -E egrep
分组()、{m,n}不需要加斜线
	grep -E 'C|cat' test.txt 
	grep --color -E '(C|c)at' test.txt 
	
	至少一个空白字符开头的杭
	grep --color -E '^[[:space:]]+' /etc/grub.conf
	grep --color -E '^[[:space:]]{1}' /etc/grub.conf
	
	找到1-255之间的整数  --()是关键
	egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /etc/grub.conf
	
	找出ifconfig结果中的ip地址,4个数字,每个数字都是0-255
	ifconfig | egrep --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'
	ifconfig | egrep --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>
	
	
	
	
	

猜你喜欢

转载自jinjzk.iteye.com/blog/2243304
今日推荐