W tym artykule wyjaśnimy użycie narzędzia grep na różnych przykładach. Użyjemy Debiana 10 do wyjaśnienia poleceń i metod wymienionych w tym artykule.
Instalowanie Grepa
Grep jest instalowany w większości dystrybucji Linuksa. Jeśli jednak brakuje go w twoim systemie, możesz go zainstalować za pomocą następującej metody w Terminalu:
$sudo apt-get install chwyt
Korzystanie z Grepa
Oto podstawowa składnia polecenia grep. Zaczyna się od grep, po którym następuje kilka opcji i kryteriów wyszukiwania, a kończy się nazwą pliku.
$chwyt [opcje]WZÓR[PLIK...]
Szukaj plików
Aby wyszukać nazwę pliku w katalogu zawierającym określony ciąg, możesz użyć grep w następujący sposób:
$ls -ten | chwyt -istrunowy
Na przykład, aby wyszukać nazwę pliku zawierającą ciąg test , polecenie to:
$ls-ten| chwyt-itestTo polecenie wyświetla listę wszystkich plików zawierających 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:
$chwytciąg nazwa plikuNa przykład, aby wyszukać ciąg test w pliku o nazwie plik testowy1 , użyliśmy następującego polecenia :
$chwytplik testowy pracownika1Powyższe wyjście zwróciło zdanie z plik testowy1 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:
$chwytciąg nazwa_pliku1 nazwa_pliku2Na przykład, aby wyszukać pracownika ciągu w naszych dwóch plikach testfile1 i testfile2, użyliśmy następującego polecenia:
$chwytplik testowy pracownika1 plik testowy2Powyższe polecenie wyświetli listę wszystkich wierszy, które zawierają napis worker z obu plików testfile1 i testfile2.
Możesz również użyć znaku wieloznacznego, jeśli wszystkie nazwy plików zaczynają się od tego samego tekstu.
$chwytciąg nazwa pliku*Na przykład, jeśli weźmiemy powyższy przykład, w którym nasze nazwy plików były testfile1 i testfile2 , polecenie to:
$chwytplik testowy pracownika*Wyszukaj ciąg w pliku, ignorując wielkość liter
Najczęściej spotykasz się z tym, gdy szukasz czegoś za pomocą grep, ale nie otrzymujesz wyniku. Dzieje się tak z powodu niezgodności wielkości liter podczas wyszukiwania ciągu. Jak w naszym przykładzie, jeśli błędnie użyjemy Pracownik zamiast pracownik , zwróci zero, ponieważ nasz plik zawiera łańcuch pracownik małymi literami.
Możesz powiedzieć grepowi, aby ignorował wielkość liter w wyszukiwanym ciągu, używając flagi –i po grep w następujący sposób:
$chwyt–i ciąg nazwy plikuUżywając flagi –i, polecenie wykona wyszukiwanie bez uwzględniania wielkości liter i zwróci wszystkie wiersze zawierające ciąg pracownik w nim bez brania pod uwagę litery są pisane wielkimi lub małymi literami.
Szukaj za pomocą wyrażenia regularnego
Właściwie użyte wyrażenie regularne jest bardzo skuteczną funkcją w grep. Za pomocą polecenia Grep możesz zdefiniować wyrażenie regularne ze słowami kluczowymi początkowymi i końcowymi. Dzięki temu nie będziesz musiał wpisywać całej linii poleceniem grep. W tym celu można użyć następującej składni.
$chwytpoczątkowe słowo kluczowe.*endingKeyword nazwa plikuNa przykład, aby wyszukać wiersz w pliku o nazwie testfile1, który zaczyna się ciągiem this i kończy danymi ciągu, użyliśmy następującego polecenia:
$chwytten.*plik testowy danych1Wydrukuje całą linię z plik testowy1 zawierające wyrażenie (początkowe słowo kluczowe this i końcowe słowo kluczowe dane).
Wydrukuj określoną liczbę wierszy po/przed szukanym ciągiem
Możesz także wyświetlić określoną liczbę wierszy 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:
$chwyt -DO <n>ciąg nazwa plikuWyświetli liczbę N wierszy po dopasowaniu ciągu w określonym pliku, łącznie z dopasowanym ciągiem.
Na przykład jest to nasz przykładowy plik o nazwie plik testowy2 .
Następujące polecenie wyświetli dopasowany wiersz zawierający ciąg pracownik , wraz z 2 wierszami po nim.
$chwyt-DO2–i plik testowy pracownika2Podobnie, aby wyświetlić liczbę N wierszy przed dopasowanym ciągiem w określonym pliku, użyj następującej składni:
$chwyt -B <n>ciąg nazwa plikuAby wyświetlić liczbę N wierszy wokół ciągu w określonym pliku, użyj następującej składni:
$chwyt -C <n>ciąg nazwa plikuPodświetlanie wyszukiwania
Grep domyślnie wypisuje dopasowane wiersze, ale nie pokazuje, która część wiersza jest dopasowana. Jeśli użyjesz opcji –color z grep, pokaże ona, gdzie w pliku pojawiają się ciągi obróbki. Grep domyślnie używa do podświetlania koloru czerwonego.
W tym celu można użyć następującej składni:
$chwytciąg nazwa pliku--kolorLiczenie liczby meczów
Jeśli chcesz policzyć, ile razy dane słowo pojawia się w określonym pliku, możesz użyć grep z opcją –c. Zwraca tylko liczbę dopasowań, a nie same dopasowania. W tym celu można użyć następującej składni:
$chwyt–c ciąg nazwa plikuOto nasz przykładowy plik wygląda następująco:
Poniżej znajduje się przykład polecenia, które zwróciło liczbę razy słowa plik pojawił się w pliku o nazwie plik testowy3 .
Wyszukiwanie odwrócone
Czasami chcesz przeprowadzić wyszukiwanie wsteczne, które wyświetla wszystkie wiersze z wyjątkiem pasujących danych wejściowych. Aby to zrobić, po prostu użyj flagi –v, a następnie grep:
$chwyt–v ciąg nazwa plikuNa przykład, aby wyświetlić wszystkie wiersze w pliku plik testowy3 które nie zawierają w sobie słowa konto, użyliśmy następującego polecenia:
$chwyt–v plik testowy konta3Używanie Grepa z innymi poleceniami
Grep może być również użyty do odfiltrowania wymaganych wyników z różnych danych wyjściowych poleceń. Na przykład z apt –zainstalowana 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:
$trafny--zainstalowanylista| chwytautomatyczny
Podobnie lscpu dostarcza szczegółowych informacji o procesorze. Jeśli interesują Cię tylko informacje dotyczące architektury procesora, możesz je odfiltrować za pomocą następującego polecenia:
$lscpu| chwytArchitekturaW tym artykule opisaliśmy kilka przykładów, które pomogą Ci zrozumieć polecenia grep i ich użycie w różnych warunkach. Posiadanie silnego uchwytu na polecenie grep może zaoszczędzić dużo czasu, jeśli musisz przeglądać duże pliki konfiguracyjne lub dzienniki i przeglądać przez nie przydatne informacje.