ACK:从搜索中排除特定路径(目录及其子目录)



与ACK 2。x,我可以指定命令行选项,以排除某些dirs显示在结果中。例如,要排除目录'test',我可以使用:

ack -v -g 'test' | ack -x pattern('test'可以是dirs要排除的正则表达式)

我还可以通过将--ignore-dir=save.d添加到.ackrc或将其用作命令行选项来忽略使用.ackrc的目录。但似乎我不能排除路径(一个目录和它的子目录)使用RegEx。我尝试添加以下内容:

--ignore-dir=match:^/specific/path/to/test/.*$

以及下面的变化

--ignore-dir=match:/^/specific/path/to/test/.*$/

--ignore-dir=match:/specific/path/to/test/.*

--ignore-dir=match:/specific/path/to/test/.*

--ignore-dir=match:/specific/path/to/test/

(根据该用户的说法,——ignore-dir和——ignore-file以及ack中的所有文件匹配都是使用正则表达式完成的,不是使用shell glob模式,但我也尝试过使用shell glob模式)

但是这给了我:

Non-is filters are not yet supported for --ignore-dir at /usr/bin/ack line 157

从上面的选项中取出'match:'部分不会产生错误,但也不会排除dirs

手册指出"不支持嵌套目录,如foo/bar "。为了解决这个问题,在ACK上至少到ACK 2.12是不可能排除特定的dirs和子目录的。只能排除dir与简单字符串或正则表达式匹配的所有路径。或者是否有一种未被记录的聪明方法来绕过这个限制?

这个恐怕不支持。看到

·Issue #291·petdance/ack2

我来这篇文章是为了类似的事情,发现了上面的问题…: - (

最新更新