Як використовувати ack для пошуку імені файлу


15

Я почав використовувати ack, який набагато швидше, ніж grep. Однак, використовуючи ack, я хочу шукати ім'я файлу, а не вміст файлу. Чи є спосіб це зробити?

Відповіді:


16

Використовуйте правильний інструмент для правильної роботи. Якщо ви хочете шукати ім'я файлу, використовуйте "знайти":

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"

1
дуже правильно. "як тільки ти тримаєш молоток у руці, все починає виглядати як цвях" :)
akira

2
Ну, ак (і греп) приємніші, тому що вам не потрібно чітко говорити про регулярні вирази, якщо ви цього не хочете. Я зазвичай просто роблюfind . | ack whatev.ext
Ехтеш Чодхурі,

Це працює і для пошуку каталогів.
Пратік Хадлоя

1
find and ack поводяться по-різному, оскільки ack фільтрує за замовчуванням безліч результатів (вміст каталогів управління версіями, складені об'єкти у сховищі джерел), які будуть включені до пошуку. Найкращий молоток залежить від бажаних результатів.
Джошуа Голдберг

1
Це не відповідає на питання ...
lajarre

23
ack -g REGEX

Друкуйте файли, де відносний шлях + назва файлу відповідає REGEX


1
додайте [^/]*$у свій REGEX для пошуку лише у назві файлу
simon

7

Я згоден, має сенс використовувати пошук, якщо ви просто шукаєте * .txt файли. Однак, ack має потужні функції виявлення файлового типу, тому ви можете використовувати

ack -f --perl

який знайде всі файли Perl на основі імені файлу (* .pm, * .pl, * .t і * .pod), і рядка shebang.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.