2016-03-02 116 views
0

可以說,我有類似下面的文件的文件夾:有沒有辦法使用ack忽略文件路徑?

. 
|__ components 
| |__ index.js 
| |__ _index.js 
| |__ _index.en.js 
| 
|__ _.js 

我要的是在components/index.js_.js搜索和忽略所有的components/_*.js文件。

基本上我需要類似ack的--ignore-file=match:_.*\.js,但也支持文件路徑的版本。

在ack 2中可能嗎?

回答

0

不幸的是,ack沒有直接支持忽略子目錄中的某些文件。

另一種選擇是ackgrep的東西,如下面的結合:

ack -f | grep -v -x 'components/_.*\.js' | ack -x mystr 

爲了解釋:

ack -f打印選擇的文件,而無需實際搜索。

grep -v -x 'components/_.*\.js'比賽線路是包含components目錄下的文件_.*\.js

ack -x然後從grep讀取要搜索的文件列表。

當然,您可以使用grep來修改要忽略的目錄。

+0

這是不夠的,因爲我只想在'components'文件夾中忽略這些傢伙。 – chestozo

+1

我的意思是我的例子在描述中被簡化了。問題是,是否可以忽略文件名而不是文件路徑。 – chestozo

+0

@chestozo我已經完全修改了我的答案,以顯示將'ack'與'grep'結合的示例。 –

相關問題