Polecenie GREP w Linux

Polecenie GREP w Linux
GREP (Global Regular Expression Print) jest najsilniejszym i regularnie używanym narzędziem linii poleceń Linux. Korzystając z GREP, możesz wyszukać przydatne informacje, określając kryteria wyszukiwania. Szuka konkretnego wzorca wyrażenia w określonym pliku. Kiedy znajdzie dopasowanie, drukuje wszystkie linie pliku, które pasowały do ​​określonego wzoru. Przydaje się, gdy trzeba filtrować duże pliki dziennika.

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 -a Nazwa 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 -b Nazwa pliku „ciąg”

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

$ grep -c Nazwa 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.