2011-04-06 66 views

回答

1
ack -G '^(?!test$)' 
ack -G '^(?!.*test)' 

使用第一个无视准确test命名的文件。使用第二个来忽略文字test里面的任何地方。

如果要永久忽略测试文件,您可以编辑在ACK脚本is_searchable功能。这是过滤掉核心转储,交换文件等的例程。

+0

为什么我需要脱字符号才能使其工作。基于这个http://www.rubular.com/ caret只是表示行的开始。 – 2011-04-06 21:01:25

+0

您需要锚定负向预测值,否则它将始终匹配。如果你只是写'(?!test)',那么它将匹配所有的文件名,因为前瞻将总是能够找到* some *的位置,在那里单词“test”不存在。 – 2011-04-06 21:17:53

+0

感谢您的解释。 – 2011-04-06 21:38:50