Grep Command w Linuksie

Grep Command Linux



Polecenie Grep (globalne drukowanie wyrażeń regularnych) jest najpotężniejszym i najczęściej używanym narzędziem wiersza poleceń Linuksa. Używając Grepa, możesz wyszukiwać przydatne informacje, określając kryteria wyszukiwania. Wyszukuje określony wzorzec wyrażenia w określonym pliku. Gdy znajdzie dopasowanie, drukuje wszystkie wiersze pliku, które pasują do określonego wzorca. Przydaje się, gdy musisz filtrować duże pliki dziennika.

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-itest

To 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 pliku

Na przykład, aby wyszukać ciąg test w pliku o nazwie plik testowy1 , użyliśmy następującego polecenia :

$chwytplik testowy pracownika1

Powyż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_pliku2

Na 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 testowy2

Powyż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 pliku

Uż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 pliku

Na 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 danych1

Wydrukuje 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 pliku

Wyś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 pracownika2

Podobnie, 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 pliku

Aby 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 pliku

Podś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--kolor

Liczenie 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 pliku

Oto 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 pliku

Na 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 konta3

Uż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| chwytArchitektura

W 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.