Porady Admina: egrep
Ostatnia aktualizacja: 16 listopada 2023, 12:09
W dzisiejszym wpisie z cyklu Porady Admina przybliżę program egrep.
Polecenie egrep (Extended Global Regular Expression Print) to narzędzie do przetwarzania tekstu, które wyszukuje wzorce lub wyrażenia regularne w określonej lokalizacji. Narzędzie zapewnia takie same dane wyjściowe jak grep -E, ale działa szybciej.
egrep jest częścią pakietu grep.
Polecenie egrep nie może zostać uruchomione bez co najmniej jednego wyszukiwanego terminu i lokalizacji wyszukiwania. Częściami składni egrep są:
– Opcje – argumenty, które modyfikują i określają proces wyszukiwania.
– Jedno lub wiele wyszukiwanych haseł – ciąg, wiele ciągów lub wyrażenie regularne.
– Lokalizacja – plik, katalog lub ścieżka do pliku, w którym ma zostać przeprowadzone wyszukiwanie.
Składnia
egrep [opcje] [wyszukiwane_hasło] [lokalizacja]
Opcje
-c : Zlicza pasujące linie.
-v : Aktywuje odwrotne dopasowywanie.
-l : Wyświetla tylko pasujące nazwy plików.
-L : Wyświetla tylko nazwy plików, bez dopasowań.
-e : Umożliwia użycie łącznika na początku wzorca.
-H : Wyświetla nazwy plików oprócz standardowego wyjścia.
-i : Aktywuje wyszukiwanie bez uwzględniania wielkości liter.
-o : Wyświetla tylko dopasowany łańcuch, a nie całą linię.
-w : Wypisuje tylko wiersze zawierające całe słowa.
-x : Pokazuje tylko łańcuchy pasujące do całej linii.
-n : Pokazuje numery linii wraz z dopasowaną linią.
-r : Wyszukuje szukany termin w podanym katalogu i jego podkatalogach.
-b : Pokazuje pozycję dopasowań w pliku
-B (n) : Drukuje linię z szukanym ciągiem i n poprzednimi liniami.
-A (n) : Drukuje wiersz zawierający wyszukiwany ciąg i n wierszy po nim.
-C (n) : Drukuje linię zawierającą wyszukiwany ciąg i n linii przed i po.
Przykłady
Najczęstszym zastosowaniem egrep jest wyszukiwanie ciągu znaków w pliku. Znajdź ciąg znaków 'Linux’ w pliku moj.txt
egrep Linux moj.txt
Aby wydrukować tylko ciąg, a nie całą linię, użyj flagi -o
egrep -o Linux moj.txt
Połączenie opcji -o z flagą -b znajduje miejsca, w których umieszczone są dopasowania w pliku
egrep -b -o Linux moj.txt
Flaga -b działa również bez innych argumentów, wypisując całą linię i lokalizację łańcucha
egrep -b Linux moj.txt
Polecenie egrep działa z rozszerzonymi wyrażeniami regularnymi, które zawierają więcej znaków do określenia pasującego wzorca ((gwiazdka),+,? |). Metaznaki nazywane są kwantyfikatorami i określają liczbę wystąpień.
Na przykład gwiazdka (gwiazdka) oznacza zero lub więcej wystąpień.
egrep 'L(gwiazdfka)x' moj.txt
egrep znajduje różne znaki w tekście za pomocą wyrażeń i nawiasów. Wyrażenia w nawiasach umożliwiają egrep dopasowywanie różnych znaków. Na przykład znajdź wielkie litery A, B lub C
egrep [ABC] moj.txt
Polecenie egrep wypisuje każdą linię zawierającą ciąg, nawet jeśli jest częścią większego ciągu. Na przykład, gdy wyszukiwanym terminem jest man, egrep wyświetla również wiersze zawierające man w podręczniku
egrep man moj.txt
Użyj flagi -c, aby wyświetlić całkowitą liczbę wierszy zawierających szukany termin
egrep -c Linux moj.txt
Polecenie egrep uwzględnia wielkość liter, co oznacza, że wielkie i małe litery są interpretowane w różny sposób. Na przykład, gdy szukanym ciągiem jest egrep, zwraca tylko dopasowania małymi literami i ignoruje te wielkie
egrep -i linux moj.txt
Użyj flagi -v, aby wyświetlić łańcuchy, które nie pasują do wzorca wyszukiwania. Na przykład pomiń każdą linię ze słowem man (niezależnie od przypadku) na wyjściu
egrep -v -i Linux moj.txt