Jak znaleźć wszystkie pliki zawierające określony tekst w Linux
- 2876
- 151
- Juliusz Sienkiewicz
Ten samouczek nauczy Cię, jak rekurencyjnie wyszukiwać pliki zawierające określony ciąg w Linux za pomocą wiersza poleceń. W tym samouczku używa polecenia „GREP” do wyszukiwania ciągów w plikach. Alternatywnie możesz użyć polecenia Znajdź do wyszukiwania plików z określoną zawartością.
Podstawowa składnia do wyszukiwania tekstu z poleceniem GREP:
grep -rl „wyszukiwanie”/ścieżka/do/serch/dir1 | grep -rl „wyszukiwanie”/ścieżka/do/serch/dir |
Polecenie GREP oferuje inne przydatne opcje znalezienia określonego tekstu w systemach plików.
-r, -rekurencyjny
: Wyszukaj pliki rekurencyjnie-R,--dereference-rekusyjne
: Wyszukiwanie plików rekurencyjnie i śledź symbolizacje--include = file_pattern
: Wyszukaj tylko pliki pasujące do pliku_pattern--exclude = file_pattern
: Pomiń pliki i katalogi pasujące do pliku_pattern--exclude-FROM = plik
: Pomiń pliki pasujące do dowolnego wzorca pliku z pliku--exclude-dir = wzór
: katalogi, które dopasowują wzór zostanie pominięty.-L,-Pliki-z dopasowaniem
: Wydrukuj nazwy plików zawierających brak dopasowania-L,-Pliki z meczami
: Wydrukuj ciąg zawierający tylko nazwy plików-I, --gnore-case
: ignoruj przypadek ciągu wyszukiwania-e, --regexp = wzór
: Użyj wzorca, aby wyszukiwać lub określić wiele ciągów wyszukiwania-W,--Word-Regexp
: zmusza do dopasowania całych słów
Istnieje kilka sposobów korzystania z polecenia GREP do wyszukiwania tekstu. Omówmy kilka przykładów wyszukiwania tekstu/ciągu w systemie plików.
- Wyszukaj pojedynczy ciąg we wszystkich plikach
Poniższe polecenie przykładowe wyszukiwa ciąg „Błąd” we wszystkich plikach w katalogu /var /log katalog.
Wyszukaj określony tekst we wszystkich plikach za pomocą wiersza poleceńgrep -rlw „błąd” /var /log
- Wyszukaj wiele ciągów we wszystkich plikach
-mi
Przełącznik można również wykorzystać do znalezienia wielu ciągów. Jest to porównywalne zEgrep
program. Poniższy przykład będzie szukał "Błąd" I "Ostrzeżenie" we wszystkich plikach w /var/log katalog i jego subkredyty.
Wyszukaj wiele ciągów we wszystkich plikach z wierszem poleceńgrep -rlw -e „błąd” -e „ostrzeżenie” /var /log
- Wyszukaj ciąg w określonych plikach
Możesz wyszukiwać ciągami w plikach, które pasują do kryteriów nazwy pliku. Poniższe polecenie wyszukuje "Błąd" w plikach z .dziennik rozszerzenie w /var/log katalog i jego podwodne.
grep -rlw --include = "*.log „-e„ błąd ” /var /log
- Wyklucz niektóre pliki z wyszukiwania
Możesz użyć
--wykluczać
opcja w znalezieniu, aby wykluczyć niektóre pliki, które pasują do niektórych kryteriów nazwy pliku. Na przykład możesz wykluczyć pliki za pomocą .tekst rozszerzenie.grep -rlw --exclude = "*.txt "-e" tecadmin " /var /log
- Wyklucz niektóre katalogi z wyszukiwania
Możesz także pominąć przeszukiwanie niektórych katalogów. Na przykład nie wyszukaj plików ciągów w żadnym folderze z Apache2 na jego nazwę.
grep -rlw --exclude -dir = "*apache2*" -e "tecadmin" /var /log
Wniosek
Nauczyłeś się wyszukiwać określony tekst w plikach w systemie plików Linux w tym samouczku.