2014年(5)
分类: LINUX
2014-04-21 23:04:09
原文地址:Shell之grep命令 作者:scq2099yt
元字符 |
功能 |
例子 |
匹配什么 |
^ |
锚定行的开始 |
/^love/ |
匹配所有以love开头的行 |
$ |
锚定行的结束 |
/love$/ |
匹配所有以love 结束的行 |
. |
匹配一个字符 |
/l..e/ |
匹配这样的行,这些行包含这样的字符:第一个字符是l,紧跟着两个字符,然后是e |
* |
代表0个或多个先前字符 |
/*love/ |
匹配所有这样的行,有0个或多个空格,空格后跟着love |
[] |
匹配字符组中的一个字符 |
/[Ll]ove/ |
匹配所有包含love或者Love的行 |
[^] |
匹配一个不在范围内的字符 |
/[^A-Z]ove/ |
|
< |
锚定单词的开始 |
|
匹配所有这样的行,这些行包含以love开头的单词(vi和grep支持这个功能) |
> |
锚定单词的结束 |
Love> |
匹配所有这样的行,这些行包含以love结束的单词(vi和grep支持这个功能) |
(..) |
标记后面用到的匹配字符 |
/(love)able1rs/ |
最多可以使用9个标签。第一个标签是模板最左边的部分。在本例子中,模板love保存的标签为1,后面的1指得就是love;本例子搜索的是这样的行,这些行包含这样的字符,在Loveabel后面跟着lovers |
x{m} |
M次复制字符x |
||
x{m,} |
至少m次复制字符x |
||
x{m,n} |
至少m次,至多n次复制字x |
||
w |
文字和数字字符,[A-Za-z0-9] |
Lw*e |
匹配一个L字符,紧跟着0个或多个文字或数字字符,然后是e |
W |
同上 |
||
b |
单词分界线 |
bloveb |
仅仅匹配单词love |
+ |
匹配一个或者多个先前字符 |
[a-z]+ove |
匹配一个或者多个小写字符且后面是ove的, |
? |
匹配0个或者多个先前字符 |
Lo?ve |
匹配L后面有一个或者没有o,然后是ve |
a|b|c |
匹配a或b或c |
Love|hate |
匹配love或hate其中一个 |
() |
字符组 |
Love(able|rs)(ov)+ |
匹配loveable或lovers,匹配一个或多个ov |
(…)(…)12 |
标记匹配字符串 |
(love)ing |
标签标记出寄存器的一部分,并稍后替换模板。该模板叫做1,并可反复引用。在表达式中最多可以使用9个这样的标签。例如,模板love被保存在寄存器1中并稍后替换标签叫做1 |
x{m} |
重复字符X,m次,至少m,或者m次和n次之间。 |
||
x{m,} |
|||
x{m,n} |
|