2012-03-30 78 views
3

我有一系列包含HTML注释(<!-- some comment -->),我试图用grep匹配HTML注释使用grep和正则表达式

评论仅跨1跨线相匹配的文件。

这里是我的命令

grep -rl '<!--.*?-->' ./ 

这并不匹配。但是,如果我运行grep这个正则表达式:

grep -rl '<!--.*?' ./ 

它的工作原理。

原来的正则表达式在javascript中工作,但由于某种原因,grep似乎并不喜欢它。

谢谢。

+0

是多行注释? “失败”是什么意思?它没有找到所有带有注释的文件,或者它找不到任何匹配? – 2012-03-30 20:33:11

+0

我已经更新了我的回复。 – Trevor 2012-03-30 20:33:25

+1

如果您使用'egrep',那么该代码应该可以工作。 – Moses 2012-03-30 20:37:48

回答

1

grep中的默认正则表达式引擎(POSIX basic)不支持?。这工作,因为.也将匹配空间:

grep -rl '<!--.*-->' ./ 
+0

Grep也不会匹配跨线 – 2012-03-30 20:37:17

0

Egrep是另一种选择。

egrep -r '<!--.*?-->' ./