2016-03-02 2 views
0

Допустим, у меня есть папка с файлами, как показано ниже:Есть ли способ игнорировать путь к файлу с помощью ack?

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

То, что я хочу, чтобы искать в components/index.js и в _.js и игнорировать все components/_*.js файлы.

В принципе мне нужно что-то вроде ack's --ignore-file=match:_.*\.js, но версия, которая также поддерживает путь к файлу.

Возможно ли это в ack 2?

ответ

0

К сожалению, ack не имеет прямой поддержки для игнорирования определенных файлов в подкаталогах.

Другим вариантом является сочетание ack с grep с чем-то вроде следующего:

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

Для объяснения:

ack -f печатает выбранные файлы, фактически не поиска.

grep -v -x 'components/_.*\.js' матчи линии, которые сделать не содержать _.*\.js файлы в директории components.

ack -x затем считывает список файлов для поиска с grep.

Конечно, вы можете настроить каталоги для игнорирования с помощью grep.

+0

Этого недостаточно, потому что я хочу игнорировать этих парней только в папке 'components'. – chestozo

+1

Я имею в виду, что мой пример в описании упрощен. Вопрос в том, можно ли игнорировать не только имена файлов, но и пути к файлам. – chestozo

+0

@chestozo Я полностью обновил свой ответ, чтобы показать пример, который сочетает 'ack' с' grep'. –

Смежные вопросы