强大的grep 命令

grep命令很强大,在命令行中使用man grep 可以查看grep的命令各个选项介绍:

>grep [选项] 模式 文件名	
选项:
	-i			#忽略大小写
	--color		#把匹配到的以颜色显示
	-v			#反向,即匹配到的不显示
	-o			#只显示被匹配的字符串
	-A n		#显示匹配到的字符时也显示其后面的n行
	-B n		#显示匹配到的字符时也显示其前面的n行
	-C n		#显示匹配到的字符时也显示其前后的n行
	-E			#拓展正则
	
>grep -A 2 'root' /etc/passwd
>grep -E 'C|cat' /etc/passwd

【正则】
元字符
.		#匹配任意单个字符
[]		#批配指定范围内的任意单个字符
[^]		#批配指定范围外的任意单个字符
字符集合:
[:digit:]	#批配数字集合
[:lower:]	#批配小写字母集合
[:upper:]	#批配大写字母集合
[:punct:]	#批配标点符号集合
[:space:]	#批配空白字符集合
[:alpha:]	#批配所有字母
[:alnum:]	#批配包含所有数字字母
>grep '[[:digit:]]$' /etc/inittab 	#匹配以数字结尾的行
	
匹配次数
*		#匹配其前面的字符任意次
	.*	#匹配任意长度的任意字符
+		#只有拓展正则才有,匹配前面字符至少出现一次
|		#只有拓展正则才有,或
\?		#匹配其前面的字符0次或1次,在命令行中使用时,用反斜杆转义\?
>grep 'a\?b' test.txt
\{m,n\} #匹配前的字符至少m次,最多n次
	
锚定位置:
^		#锚定开头	
$		#锚定结尾	
^$		#匹配空白行	

\<或者\b	#其后面的任意字符必须作为单词的首部出现	
\>或者\b	#其后面的任意字符必须作为单词的尾部出现	
grep '\<root\>	#匹配完整的单词root	,而不是rooter ,chroot

\(\)		#分组,反斜杠是给bash转义
\(ab\)		#ab作为整体来查找
grep '\(ab\).*\1' test.txt	#\1是后向引用\(ab\)

注:grep 使用-E选项是拓展正则,不用反斜杆转义


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值