Samouczek wyrażeń regularnych Linuksa: przykład Grepa Regex

Spisie treści:

Anonim

Co to są wyrażenia regularne systemu Linux?

Wyrażenia regularne Linuksa to znaki specjalne, które pomagają wyszukiwać dane i dopasowywać złożone wzorce. Wyrażenia regularne są skracane jako „regexp” lub „regex”. Są używane w wielu programach Linuksa, takich jak grep, bash, rename, sed itp.

Rodzaje wyrażeń regularnych

Aby ułatwić zrozumienie, nauczmy się kolejno różnych typów Regex.

  • Podstawowe wyrażenia regularne
  • Interwał Wyrażenia regularne
  • Rozszerzone wyrażenia regularne
  • Podsumowanie

Kliknij tutaj, jeśli wideo nie jest dostępne

Podstawowe wyrażenia regularne

Niektóre z najczęściej używanych poleceń z wyrażeniami regularnymi to tr, sed, vi i grep. Poniżej wymienione są niektóre z podstawowych Regex.

Symbol Opisy
. zastępuje dowolny znak
dopasowuje początek łańcucha
$ dopasowuje koniec łańcucha
* dopasowuje zero lub więcej razy poprzedni znak
\ Przedstawiają znaki specjalne
() Wyrażenia regularne grup
? Dopasowuje dokładnie jeden znak

Zobaczmy przykład.

Wykonaj próbkę cat, aby zobaczyć zawartość istniejącego pliku

Wyszukaj zawartość zawierającą literę „a”.

^ ” dopasowuje początek łańcucha. Poszukajmy treści, które ZACZYNA SIĘ z rozszerzeniem

Filtrowane są tylko wiersze zaczynające się od znaku. Wiersze, które nie zawierają znaku „a” na początku, są ignorowane.

Spójrzmy na inny przykład -

Wybierz tylko te wiersze, które kończą się na t, używając znaku $

Interwał Wyrażenia regularne

Te wyrażenia mówią nam o liczbie wystąpień znaku w ciągu. Oni są

Wyrażenie Opis
{n}

Dopasowuje poprzedni znak występujący dokładnie „n” razy

{n, m} Odpowiada poprzedzającemu znakowi występującemu „n” razy, ale nie więcej niż m
{n,} Dopasowuje poprzedni znak tylko wtedy, gdy występuje n lub więcej razy

Przykład:

Odfiltruj wszystkie wiersze zawierające znak „p”

Chcemy sprawdzić, czy znak „p” występuje dokładnie 2 razy w ciągu, jeden po drugim. W tym przypadku składnia byłaby następująca:

cat sample | grep -E p\{2}

Uwaga: musisz dodać -E z tymi wyrażeniami regularnymi.

Rozszerzone wyrażenia regularne

Te wyrażenia regularne zawierają kombinacje więcej niż jednego wyrażenia. Niektórzy z nich są:

Wyrażenie Opis

\ +

Dopasowuje jedno lub więcej wystąpień poprzedniego znaku

\?

Dopasowuje zero lub jedno wystąpienie poprzedniego znaku

Przykład:

Wyszukiwanie wszystkich znaków „t”

Załóżmy, że chcemy odfiltrować wiersze, w których znak „a” poprzedza znak „t”

Możemy użyć polecenia takiego jak

cat sample|grep "a\+t"

Rozwinięcie nawiasów

Składnia rozwijania nawiasów jest albo sekwencją, albo rozdzieloną przecinkami listą elementów w nawiasach klamrowych „{}”. Elementy początkowe i końcowe w sekwencji są oddzielone dwiema kropkami „…”.

Kilka przykładów:

W powyższych przykładach polecenie echo tworzy łańcuchy przy użyciu rozwinięcia nawiasów.

Podsumowanie:

  • Wyrażenia regularne to zestaw znaków używanych do sprawdzania wzorców w łańcuchach
  • Nazywa się je również „regexp” i „regex”
  • Ważne jest, aby nauczyć się wyrażeń regularnych do pisania skryptów
  • Oto kilka podstawowych wyrażeń regularnych:
Symbol Opisy
. zastępuje dowolny znak
dopasowuje początek łańcucha
$ dopasowuje koniec łańcucha
  • Niektóre rozszerzone wyrażenia regularne to:
Wyrażenie Opis
\ + Dopasowuje jedno lub więcej wystąpień poprzedniego znaku
\? Dopasowuje zero lub jedno wystąpienie poprzedniego znaku
  • Niektóre wyrażenia regularne interwałowe to:
Wyrażenie Opis
{n} Dopasowuje poprzedni znak występujący dokładnie „n” razy
{n, m} Odpowiada poprzedzającemu znakowi występującemu „n” razy, ale nie więcej niż m
{n,} Dopasowuje poprzedni znak tylko wtedy, gdy występuje n lub więcej razy
  • Rozwinięcie nawiasów jest używane do generowania ciągów. Pomaga w tworzeniu wielu ciągów z jednego.