Как использовать ag для поиска текста в файлах с определенными расширениями?

23

Я использую ag( The Silver Searcher ) версию 0.31.0. Я могу легко найти строку в куче файлов, используя:

localhost:workspace davea$ ag 'ftp' .

Но что, если я хочу сканировать файлы только с определенными расширениями? Я попробовал это:

localhost:workspace davea$ ag 'ftp' .java
ERR: Error stat()ing: .java
ERR: Error opening directory .java: No such file or directory

но получил ошибки, которые вы видите выше.

Дейв
источник
Дали этому вихрю, но получили ошибки «ОШИБКА: Ошибка статистики () ing: * .java» и «ОШИБКА: Ошибка при открытии каталога * .java: Нет такого файла или каталога»
Дейв

Ответы:

28

Согласно инструкции, вы можете использовать agс-G

   -G --file-search-regex PATTERN
          Only search files whose names match PATTERN.

например

ag -G '\.java$' 'ftp' .

По тому же руководству

   It is possible to restrict the types of files searched [...]
   For a list of supported types, run ag --list-file-types.

Таким образом, вы также можете запустить

ag --java 'ftp' .

хотя это ограничило бы поиск именами файлов, заканчивающимися на .javaили.properties

don_crissti
источник
2
ой извините, удаляя.
Питер Краусс
`ag -G '\. (hbs | html) $' ключевое слово`, если вы ищете несколько расширений файлов
Алан Донг
0

Начиная с ag version 2.2.0, вы можете запустить ag --list-file-types, который будет перечислять поддерживаемые, готовые типы. Вы можете запускать ag "ftp" --javaи искать только в разных файлах Java.

mxplusb
источник