W tym artykule wyjaśnimy użycie użyteczności GREP z różnymi przykładami. Użyjemy Debiana 10 do wyjaśnienia poleceń i metod wymienionych w tym artykule.
Instalowanie GREP
GREP jest zainstalowany w większości dystrybucji Linux. Jednak w przypadku braku jego systemu możesz go zainstalować za pomocą następującej metody w terminalu:
$ sudo apt-get instaluj grep
Za pomocą GREP
Oto podstawowa składnia polecenia GREP. Zaczyna się od GREP, a następnie niektórych opcji i kryteriów wyszukiwania, a następnie kończy się nazwą pliku.
$ grep [opcje] wzór [plik…]
Wyszukaj pliki
Aby wyszukać nazwę pliku w katalogu zawierającym w nim określony ciąg, możesz użyć GREP w następujący sposób:
$ ls -l | grep -i „
Na przykład, aby wyszukać nazwę pliku zawierającą ciąg „test„Poleceniem byłoby:
$ ls -l | test GREP -i
To polecenie zawiera wszystkie pliki zawierające ciąg „test".
Wyszukaj ciąg w pliku
Aby wyszukać ciąg w określonym pliku, możesz użyć następującej składni polecenia:
$ grep „string” nazwa pliku
Na przykład, aby wyszukać ciąg „test”W pliku o nazwie testFile1, Użyliśmy następującego polecenia:
$ grep „pracownik” testowy
Powyższe wyjście zwróciło zdanie z testFile1 który zawiera ciąg „pracownik".
Wyszukaj ciąg w wielu plikach
Aby wyszukać ciąg w wielu plikach, możesz użyć następującej składni polecenia:
$ grep „string” nazwa pliku1 nazwa pliku2
Na przykład, aby wyszukać ciąg „Pracownik” w naszych dwóch plikach TestFile1 i TestFile2, użyliśmy następującego polecenia:
$ grep „pracownik” testFile1 TestFile2
Powyższe polecenie zawiera listę wszystkich wierszy zawierających ciąg „Pracownik” z obu plików TestFile1 i TestFile2.
Możesz także użyć znaku wieloznacznego, jeśli wszystkie nazwy plików zaczynają się od tego samego tekstu.
$ grep „string” nazwa pliku*
Na przykład, jeśli weźmiemy powyższy przykład, w którym były nasze nazwy plików TestFile1 i TestFile2 , Poleceniem byłoby:
$ grep „pracownik” testowy*
Wyszukaj ciąg w pliku, ignorując przypadek ciągu
Najczęściej spotkałeś się z tym, gdy szukasz czegoś za pomocą GREP, ale nie otrzymujesz wyjścia. Dzieje się tak z powodu niedopasowania spraw podczas poszukiwania ciągu. Jak w naszym przykładzie, jeśli błędnie używamy „Pracownik" zamiast "pracownik”, Zwróci zero, ponieważ nasz plik zawiera ciąg„pracownik„W niższych literach.
Możesz powiedzieć GREP, aby zignorował przypadek ciągu wyszukiwania za pomocą flagi -i po GREP w następujący sposób:
$ grep -i „string” nazwa pliku
Korzystając z flagi -i, polecenie przeprowadzi nieczułe wyszukiwanie i zwróci wszystkie wiersze zawierające ciąg „pracownik”Bez uwzględnienia liter są w wielkich lub małych literach.
Wyszukaj za pomocą wyrażenia regularnego
Jeśli jest odpowiednio używany, wyrażenie regularne jest bardzo skuteczną cechą GREP. Za pomocą polecenia GREP możesz zdefiniować wyrażenie regularne z początkiem i końcowym słowem kluczowym. W ten sposób nie będziesz musiał pisać całego wiersza za pomocą polecenia GREP. W tym celu można użyć następującej składni.
$ grep „początkowe słowo kluczowe.*nazwa pliku endingKeyword ”
Na przykład, aby wyszukać wiersz w pliku o nazwie TestFile1, który zaczyna się od ciągu „to” i kończy się ciągiem „dane”, użyliśmy następującego polecenia:
$ grep „to.*Data ”testFile1
Wydrukuje całą linię z testFile1 zawierające wyrażenie (początkowe słowo kluczowe „to” i końcowe słowo kluczowe „Dane”).
Wydrukuj konkretną liczbę linii po/przed ciągiem wyszukiwania
Możesz także wyświetlić określoną liczbę linii w pliku przed/po dopasowaniu ciągu wraz z samym dopasowanym ciągiem. W tym celu można użyć następującej składni:
$ grep -aNazwa pliku „ciąg”
Wyświetli N Liczb nr po dopasowaniu ciągu w określonym pliku, w tym dopasowany ciąg.
Na przykład jest to nasz przykładowy plik wymieniony testFile2.
Następujące polecenie wyświetli dopasowany wiersz zawierający ciąg „pracownik”Wraz z 2 liniami po nim.
$ grep -a 2 -i „pracownik” testFile2
Podobnie, aby wyświetlić N liczbę linii przed dopasowanym ciągiem w określonym pliku, użyj następującej składni:
$ grep -bNazwa pliku „ciąg”
Aby wyświetlić N liczbę linii wokół ciągu w określonym pliku, użyj następującej składni:
$ grep -cNazwa pliku „ciąg”
Podkreślanie wyszukiwania
GREP domyślnie linie dopasowane do druku, ale nie pokazuje, która część linii jest dopasowana. Jeśli użyjesz opcji -color z GREP, pokaże, gdzie w pliku pojawiają się ciągami obróbki. GREP domyślnie użyj czerwonego koloru do podświetlenia.
W tym celu można użyć następującej składni:
$ grep „string” nazwa pliku -kolor
Liczenie liczby dopasowań
Jeśli chcesz policzyć, ile razy konkretne słowo pojawia się w określonym pliku, możesz użyć opcji GREP z -c. Zwraca tylko liczbę meczów, a nie same mecze. W tym celu można użyć następującej składni:
$ grep -c „string” nazwa pliku
To jest nasz przykładowy plik:
Poniżej znajduje się przykład polecenia, które zwróciło liczbę razy słowo plik pojawił się w pliku o nazwie testFile3.
Odwrócone wyszukiwanie
Czasami chcesz przeprowadzić odwrotne wyszukiwanie, które wyświetla wszystkie linie, z wyjątkiem tych, które pasowały do wejścia. Aby to zrobić, po prostu użyj flagi -V, a następnie GREP:
$ grep -v „string” nazwa pliku
Na przykład, aby wyświetlić wszystkie wiersze w pliku testFile3 które nie zawierają w nich słowa „konto”, użyliśmy następującego polecenia:
$ grep -v „konto” testFile3
Używanie GREP z innymi poleceniami
GREP można również użyć do odfiltrowania wymaganego wyniku z różnych poleceń wyjściowych. Na przykład z „apt -instaled lista ” Wyjście polecenia, chcesz znaleźć tylko pakiety, które zostały zainstalowane automatycznie, możesz odfiltrować wynik za pomocą GREP w następujący sposób:
$ apt -instalowana lista | GREP Automatic
Podobnie LSCPU podaje szczegółowe informacje o procesorze. Jeśli jesteś zainteresowany informacjami dotyczącymi architektury procesora, możesz je odfiltrować za pomocą następującego polecenia:
$ LSCPU | Architektura Grep
W tym artykule opisaliśmy kilka przykładów, które pomogą ci zrozumieć polecenia GREP i jego użycie w różnych warunkach. Mocne przyczepność na polecenie GREP może zaoszczędzić dużo czasu, jeśli potrzebujesz spojrzeć na duże pliki konfiguracji lub dziennika.