标签:grep及正则表达式详解
1、grep:根据模式搜索文本 并将符合模式的文本行显示出来
文本字符和正则表达式的元字符组合而成匹配条件
grep‘root‘ /etc/passwd搜索/etc/passwd文件中包含有root字符的行显示出来
-i:只显示被模式匹配的行
--color:被模式匹配的行用颜色显示出来
-v:只显示没有被模式匹配的行
-o:只显示被模式匹配到的字符串
2、正则表达式:
元字符:
.:表示匹配任意单个字符
grep‘r..t‘ /etc/passwd
[]:表示匹配指定范围内的任意单个字符
[^]:表示匹配指定范围外的任意单个字符
匹配次数(贪婪模式):(贪婪模式表示尽可能长的模式去匹配)
*:表示匹配其前面的字符任意次
a*b表示a出现任意次后面跟了个b a,b,ab,aab,acb,amnb最后三个是不可以的
.*:匹配任意长度的任意字符
a.*b表示a开头b结尾中间是什么都可以 a,b,ab,aab,acb,amnb前面两个是不可以的
\?:表示匹配其前面的字符1次或0次
\{m,n}:表示匹配其前面的字符至少m次至多n次(\是用作转义的以免{}被shell解释)
\{1,\}表示最少一次多了不限 \{0,3\}表示最多3次少了不限
grep‘a.\{1,3\}b‘ file表示a和b之间出现1个字符2个字符3个字符任何都可以但最少出现1个最多出现3个
位置锚定:
^:锚定行首 此字符后面的任意内容必须出现在行首
$:锚定行尾 此字符前面的任意内容必须出现在行尾
grep‘w$‘ /etc/inittab搜索/etc/inittab中以w结束的行
^$:空白行
grep^$ /etc/inittab | wc -l
\<或\b:锚定词首 表示其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾 表示其后面的任意字符必须作为单词尾部出现
\(\):分组
grep"\(ab\)*" file表示找file这个文件里面出现ab的行和没出现的ab的行
3、grep:使用基本正则表达式定义的模式来过滤文本的命令(默认)
-i -v-o --color都属于基本正则表达式
-E:使用扩展正则表达式
4、扩展正则表达式:
扩展正则表达式的元字符
字符匹配:
.:表示匹配任意单个字符
[^]:表示匹配指定范围外的任意单个字符
[]:表示匹配指定范围内的任意单个字符
本文出自 “TT墨尔本TT” 博客,转载请与作者联系!
标签:grep及正则表达式详解
原文地址:http://wanliuyang.blog.51cto.com/8730913/1697051