修改正则表达式以匹配.java和.mm文件

时间:2009-05-06 03:53:23

标签: regex linux grep

我正在尝试使用cscope-indexer脚本。但我想知道如何更改以下内容以包含*.mm*.java个文件?

egrep -i '\.([chly](xx|pp)*|cc|hh)$' | \
sed -e '/\/CVS\//d' -e '/\/RCS\//d' -e 's/^\.\///' | \
sort > $LIST_FILE

我试过

egrep -i '\.([chly](xx|pp)*|cc|hh|mm|java)$'

它不起作用。

2 个答案:

答案 0 :(得分:2)

尝试:

egrep -i '\.([chly](xx|pp)*|cc|hh|mm|java)$' | \
sed -e '/\/CVS\//d' -e '/\/RCS\//d' -e 's/^\.\///' | \
sort > $LIST_FILE

答案 1 :(得分:0)

当你在原始正则表达式中看到[chly]时,这意味着“要么'c','h','l',要么'y'。当它改为”chly *“时,它现在意思是“chl”后面跟着任意数量的y。而且,当你从第一个句号的前面删除'\'时,你改变它的意思是从“匹配一个句号”到“匹配任何一个字符”。

有关正则表达式的更多信息,请查看Perl Regular Expression Guide,因为Perl几乎发明了正则表达式。