grep

Grep Command w Linuksie

Grep Command w Linuksie
Grep (globalne polecenie drukowania wyrażeń regularnych) jest najpotężniejszym i najczęściej używanym narzędziem wiersza poleceń systemu Linux Linux. Korzystając z Grepa, możesz wyszukiwać przydatne informacje, określając kryteria wyszukiwania. Szuka określonego wzorca wyrażenia w określonym pliku. Kiedy 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 grep

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.

$ grep [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 -l | grep -i „ciąg”

Na przykład, aby wyszukać nazwę pliku zawierającą ciąg „test„, polecenie to:

$ ls -l | grep -i test

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:

$ grep “string” nazwa pliku

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

$ grep „pracownik” plik testowy1

Powyższe wyjście zwróciło zdanie z plik testowy1 zawierający 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” plik testowy1 plik testowy2

Powyższe polecenie wyświetli 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 nasze nazwy plików były testfile1 i testfile2 , polecenie byłoby:

$ plik testowy grep „pracownik”*

Wyszukaj ciąg w pliku, ignorując wielkość liter

Najczęściej spotkałeś 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 ciąg „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:

$ grep -i nazwa pliku „string”

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 uwzględnienia liter są duże lub małe lower.

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 z początkowym i końcowym słowem kluczowym. Dzięki temu nie będziesz musiał wpisywać całej linii za pomocą polecenia grep. W tym celu można użyć następującej składni.

$ grep “startowe słowo kluczowe.*endingKeyword” nazwa pliku

Na przykład, aby wyszukać wiersz w pliku o nazwie testfile1, który zaczyna się od ciągu „this” i kończy ciągiem „dane”, użyliśmy następującego polecenia:

$ grep „to”.*dane” plik testowy1

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:

$ grep -A „string” nazwa pliku

Wyświetli liczbę N linii po dopasowaniu ciągu w określonym pliku, w tym dopasowanym ciągu.

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.

$ grep -A 2 -i plik testowy „pracownik”2

Podobnie, aby wyświetlić liczbę N wierszy przed dopasowanym ciągiem w określonym pliku, użyj następującej składni:

$ grep -B „string” nazwa pliku

Aby wyświetlić liczbę N wierszy wokół ciągu w określonym pliku, użyj następującej składni:

$ grep -C „string” 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 grepem, pokaże ona, gdzie w twoim pliku pojawiają się ciągi obróbki. Grep domyślnie używa koloru czerwonego do podświetlania.

W tym celu można użyć następującej składni:

$ grep “string” nazwa pliku --color

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:

$ grep -c “string” 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 oprócz pasujących do danych wejściowych. 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 plik testowy3 które nie zawierają w sobie słowa „konto”, użyliśmy następującego polecenia:

$ grep -v „konto” plik testowy3

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 -lista zainstalowanych” 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 --zainstalowana lista | grep automatyczny

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 | grep Architektura

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.

Gry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
Gry OpenTTD Tutorial
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
Gry SuperTuxKart for Linux
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...