如何使用grep的正则表达式

时间:2015-05-25 20:15:28

标签: regex grep

我刚刚使用了以下grep命令:

<topicref version="1" dest="susu"/>
<mapref id="" dest="summat"/>

匹配以下内容:

{{1}}

所有具有dest属性的topicref和mapref。

然而,虽然regexpal接受正则表达式,但它没有用。如何将其更改为与grep一起使用?

1 个答案:

答案 0 :(得分:1)

如果您想在不使用扩展正则表达式的情况下使用括号和替换,可以使用反斜杠对它们进行转义以启用此功能。

grep -ir '^\(<topicref \|<mapref\).*\( \)\(dest="\)' .

或者,您可以使用-E选项,然后您不必转义括号:

grep -iEr '^(<topicref |<mapref).*( )(dest=")' .

注意最后的.代表当前目录,并且与r递归选项一起,这将获取目录文件中的所有匹配项。