Jak używać ack do wyszukiwania nazwy pliku


16

Zacząłem używać ack, który jest znacznie szybszy niż grep. Jednak za pomocą potwierdzenia chcę wyszukać nazwę pliku zamiast jego zawartości. Czy jest na to sposób?

Odpowiedzi:


16

Użyj właściwego narzędzia do właściwej pracy. Jeśli chcesz wyszukać nazwę pliku, użyj „find”:

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

1
bardzo prawdziwe. „gdy trzymasz w ręku młot, wszystko zaczyna wyglądać jak gwóźdź” :)
akira

2
Cóż, ack (i grep) są ładniejsze, ponieważ nie musisz mówić wprost o wyrażeniach regularnych, chyba że chcesz. Zwykle robięfind . | ack whatev.ext
Ehtesh Choudhury

Działa to również w przypadku wyszukiwania katalogów.
Pratik Khadloya

1
find i ack zachowują się inaczej, ponieważ ack domyślnie odfiltrowuje wiele wyników (zawartość katalogów kontroli wersji, skompilowane obiekty w repozytorium źródłowym), które zostałyby uwzględnione przez find. Najlepszy młotek zależy od oczekiwanych rezultatów.
Joshua Goldberg

1
To nie odpowiada na pytanie ...
lajarre

24
ack -g REGEX

Drukuj pliki, w których ścieżka względna + nazwa pliku odpowiada REGEX


1
dodaj [^/]*$do REGEX, aby wyszukać tylko w nazwie pliku
simon

7

Zgadzam się, że warto szukać, jeśli szukasz tylko plików * .txt. Jednak ack ma zaawansowane funkcje wykrywania typów plików, więc możesz z niego korzystać

ack -f --perl

który znajdzie wszystkie pliki Perla na podstawie zarówno nazwy pliku (* .pm, * .pl, * .t i * .pod), jak i linii shebang.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.