Linux dostarcza grep
do filtrowania tekstu. Ale w niektórych sytuacjach możemy potrzebować bardziej rozszerzonego narzędzia do dopasowania danego wzorca w danych plikach tekstowych. To narzędzie nazywa się Extended Global Regular Expression Print
lub po prostu egrep
. egrep
zapewnia rozszerzone funkcje w stosunku do zwykłego narzędzia grep
.
Syntaktyka polecenia egrep
jest jak poniżej.
egrep FLAG REGEX FILE
- `FLAG` jest używana do zmiany niektórych właściwości polecenia `egrep`.
- `REGEX` jest wzorem, który chcemy wyszukać w formacie regex.
- `FILE` jest nazwą pliku, w którym będziemy szukać
Szukaj normalnie
Możemy użyć egrep
do przeszukiwania normalnego tekstu bez podawania wyrażenia regularnego. Wystarczy, że podamy termin, który chcemy wyszukać. W tym przykładzie będziemy wyszukiwać ismail
w pliku o nazwie /etc/passwd
.
$ egrep ismail /etc/passwd
Dopasuj linie zawierające znaki numeryczne
Znaki numeryczne możemy określić za pomocą , co oznacza jedną z wartości numerycznych od 0 do 9.
$ egrep ''/etc/passwd
Match Lines Contains Alphabet Characters
Możemy również określić znaki alfabetu za pomocą dla małych liter i
dla dużych liter. W tym przykładzie zostaną dopasowane wielkie litery.
$ egrep ''/etc/passwd
Match All Lines Starting with Alphabet
Możemy dopasować początek linii za pomocą znaku ^
. W tym przykładzie zostaną wyszukane wszystkie linie, które zaczynają się od znaku alfa.
$ egrep '^' myinput.py
Match All Lines Ending with Numeric
Możemy określić koniec linii za pomocą znaku $
. Poniższe polecenie wyświetli listę wszystkich linii, które kończą się znakiem numerycznym.
$ egrep '$' myinput.py
Match Caseinsenstive
egrep
Domyślnie wielkość liter ma znaczenie. Rozróżnianie wielkości liter oznacza, że duże i małe litery będą się różnić jak A
jest inne niż a
. Możemy uczynić nasze dopasowanie niewrażliwym na wielkość liter, jeśli chcemy, używając opcji -i
jako flagi. Poniższy przykład dopasuje wszystkie z następujących słów
- IsmaiL
- ismAIL
- ISMAIL
$ egrep -i 'ismail' myinput.py
.