Znajdź pliki zawierające określony tekst w systemie Linux
Linux, niezależnie od używanej dystrybucji, zawiera szereg narzędzi GUI, które umożliwiają wyszukiwanie plików. Wiele nowoczesnych menedżerów plików obsługuje wyszukiwanie plików bezpośrednio na liście plików. Istnieje jednak wiele sytuacji, w których musisz użyć konsoli, na przykład podczas sesji SSH lub gdy serwer X nie uruchamia się. Oto, jak szybko znaleźć pliki zawierające określony tekst za pomocą terminala.
Reklama
Jeśli możesz korzystać z GUI, wyszukiwanie plików nie stanowi problemu. W moim ulubionym środowisku graficznym XFCE menedżer plików Thunar umożliwia wyszukiwanie plików poprzez wpisanie nazwy pliku bezpośrednio na liście plików.
Jednak żaden z menedżerów plików, których próbowałem, nie pozwala na wyszukiwanie zawartości plików.
Aby ominąć to ograniczenie podczas pracy w sesji GUI, możesz użyć programu Catfish. Catfish to popularne narzędzie wyszukiwania. Umożliwia wyszukiwanie zawartości pliku. Musisz kliknąć ikonę koła zębatego i włączyć opcję
Przeszukaj zawartość pliku.Jednak jeśli chodzi o terminal, nie można używać żadnego narzędzia graficznego. Uważam też, że Catfish nie jest przydatny i wolę od niego klasyczne narzędzia konsolowe. Oto metody i narzędzia, których używam.
Aby znaleźć pliki zawierające określony tekst w systemie Linux, wykonaj następujące czynności.
- Otwórz swoją ulubioną aplikację terminala. Terminal XFCE4 to moje osobiste preferencje.
- Wpisz następujące polecenie:
find ./ -type f -exec grep -l "tekst do znalezienia" {} \;
- Spowoduje to utworzenie listy plików zawierających wymaganą część tekstu.
Polecenie find wyszuka pliki zaczynające się od bieżącego katalogu „./”. Zamiast tego możesz określić żądaną ścieżkę.
Opcja -typ f mówi mu, aby szukał tylko plików i wykluczał katalogi. Możesz także zmusić go do wyszukiwania tylko określonego typu pliku, dodając opcję w następujący sposób:find ./ -type f -iname "*.txt" -exec grep -l "tekst do znalezienia" {} \;
Zobacz poniższy zrzut ekranu:
ten -exec opcja wywołuje narzędzie grep dla każdego z pasujących plików, aby sprawdzić ich zawartość. Jeśli tekst zostanie znaleziony w pliku, jego nazwa zostanie dodana do wyniku, dzięki -l opcja.
Alternatywy
Istnieją alternatywy dla metod opisanych powyżej. Przede wszystkim możesz używać tylko grep narzędzie. Wypróbuj następujące polecenie:
grep -iRl "tekst do znalezienia" ./
- -i oznacza ignorowanie wielkości liter.
- -R oznacza rekurencyjne przetwarzanie plików.
- -l oznacza "pokaż nazwę pliku, a nie sam wynik".
Jak widać, ta metoda jest mniej elastyczna niż odnaleźć Komenda.
Dowódca północy
Inną metodą, której często używam, jest Midnight Commander (mc), aplikacja do zarządzania plikami konsoli. W przeciwieństwie do find lub grep, mc nie jest domyślnie dołączany do wszystkich dystrybucji Linuksa, które wypróbowałem. Może być konieczne samodzielne zainstalowanie.
Aby znaleźć pliki zawierające określony tekst za pomocą Midnight Commandera, uruchom aplikację i naciśnij następującą sekwencję na klawiaturze:
Alt + Zmiana + ?
Otworzy się okno wyszukiwania.
Wypełnij sekcję „Nazwa pliku:”. Możesz określić coś takiego jak „*.txt”, aby wyszukiwać tekst tylko w plikach tekstowych.
Teraz wypełnij Zadowolony: skrzynka. Wpisz tekst, który zawierają pliki i naciśnij klawisz Enter.
Znajdzie wszystkie pliki, które spełniają kryteria.
Otóż to.