我一直在使用ACK搜索我的代码库,它是一个很棒的工具。然而,它(在我看来)有一个重要的限制——它不允许正则表达式的多行匹配。
为了克服这个限制,我想过滤一组包含某个表达式的文件,然后再次过滤它们以寻找第二个表达式(假设两个表达式很可能不在同一行)。我尝试运行以下命令,但没有成功(它什么都不返回):
ack -l --type=java "(List|Collection|Map|Set)" | ack --type=java "String"
而且我宁愿不使用grep
,因为我想将搜索限制在 java 文件中,忽略 .cvs 目录、.svn 目录等(ack
默认情况下会这样做)有什么想法吗?