Wyrażenie regularne (Regex) służy do znalezienia danej sekwencji znaków w pliku. Do zdefiniowania wzoru można użyć symboli, takich jak litery, cyfry i znaki specjalne. Różne zadania można łatwo wykonać za pomocą wzorów do regularności. W tym samouczka.
Podstawowe znaki używane we wzorach
Do zdefiniowania wzoru od regularności można użyć wielu znaków. Znaki najczęściej używane do definiowania wzorców wyrabiania są zdefiniowane poniżej.
Postać | Opis |
---|---|
. | Dopasuj dowolną postać bez nowej linii (\ n) |
\ | Cytuj nowy meta-znak |
^ | Dopasuj początek linii |
$ | Dopasuj koniec linii |
| | Zdefiniuj alternatywę |
() | Zdefiniuj grupę |
[] [] | Zdefiniuj klasę postaci |
\ w | Dopasuj dowolne słowo |
\S | Dopasuj dowolny znak białej przestrzeni |
\D | Dopasuj dowolną cyfrę |
\B | Dopasuj dowolną granicę słów |
Utwórz plik
Aby śledzić ten samouczek, utwórz plik tekstowy o nazwie produkty.tekst. Plik powinien zawierać cztery pola: id, nazwa, typ i cena.
ID Nazwa Cena
P1001 15 "Monitor Monitor 100 USD
P1002 mysz myszka A4Tech 10 USD
P1003 Drukarka do drukarki Samsung 50 USD
P1004 skaner skanera HP 60 USD
P1005 Mysz myszka Logitech 15 USD
Przykład 1: Zdefiniuj wzór regex za pomocą klasy znaków
Poniższe polecenie „AWK” będzie wyszukiwać i wydrukować wiersze zawierające postać „n ', a następnie postacie„ er ”.
produkty $ cat.tekst
$ awk '/ [n] [er]/ print 0 $' produkty.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście pokazuje linię pasującą do wzoru. Tutaj tylko jedna linia pasuje do wzoru.
Przykład 2: Zdefiniuj wzór regex za pomocą symbolu „^”
Poniższe polecenie „AWK” będzie wyszukiwać i wydrukować wiersze, które zaczynają się od postaci „P” i zawiera numer 3.
produkty $ cat.tekst
$ awk '/^p.*3/ drukuj 0 $ produkty.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Tutaj jest jedna linia, która pasuje do wzoru.
Przykład 3: Zdefiniuj wzór regularności za pomocą funkcji GSUB
gsub () Funkcja służy do globalnego wyszukiwania i wymiany tekstu. Poniższe polecenie „AWK” będzie wyszukiwać słowo „skaner” i zastąpi je słowem „router” przed wydrukowaniem wyniku.
produkty $ cat.tekst
produkty $ awk 'gsub (/scanner/, „router”).tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Jest jedna linia, która zawiera słowo 'Skaner', I 'Skaner„Jest zastąpiony słowem”Router„Przed wydrukowaniem linii.
Przykład 4: Zdefiniuj wzór regex z „*”
Poniższe polecenie „AWK” wyszuka i wydrukuje dowolny ciąg, który rozpoczyna się od „MO” i zawiera dowolną kolejną postać.
produkty $ cat.tekst
$ awk '/ mo*/ print $ 0' produkty.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Trzy linie pasują do wzoru: Dwie linie zawierają słowo 'Mysz„I jedna linia zawiera słowo”Monitor'.
Przykład 5: Zdefiniuj wzór regex za pomocą symbolu „$”
Poniższe polecenie „AWK” będzie wyszukiwać i wydrukować wiersze w pliku, które kończą się numerem 5.
produkty $ cat.tekst
$ awk '/ 5 $/ print $ 0' Produkty.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. W pliku jest tylko jedna linia, która kończy się numerem 5.
Przykład 6: Zdefiniuj wzór regex za pomocą „^” i „|” symbolika
''^`` Symbol wskazuje na początek linii i ''|„Symbol wskazuje logiczne lub stwierdzenie. Poniższe polecenie „AWK” będzie wyszukiwać i wydrukować wiersze, które zaczynają się od postaci ”P„i zawieraj alboSkaner' Lub 'Mysz'.
produkty $ cat.tekst
$ awk '/^p.* (Skaner | mysz)/'produkty.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Wyjście pokazuje, że dwa linie zawierają słowo 'Mysz„I jedna linia zawiera słowo”Skaner'. Trzy linie zaczynają się od postaciP'.
Przykład 7: Zdefiniuj wzór regex za pomocą symbolu „+”
''+„Operator służy do znalezienia co najmniej jednego dopasowania. Poniższe polecenie „AWK” będzie wyszukiwać i wydrukować wiersze zawierające znak ''N' przynajmniej raz.
produkty $ cat.tekst
$ awk '/n+/print'.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Tutaj postać 'N„zawiera przynajmniej raz w wierszach zawierających słowa Monitor, drukarka i skaner.
Przykład 8: Zdefiniuj wzór regex za pomocą funkcji gsub ()
Poniższe polecenie „AWK” będzie szukać słowa ”Drukarka„i zastąp go słowem”Monitor' używając funkcja gsub ().
produkty $ cat.tekst
$ awk 'gsub (/drukarka/, „monitor”) print $ 0 ”.tekst
Następujące dane wyjściowe zostaną wyprodukowane po uruchomieniu powyższych poleceń. Czwarta wiersz pliku zawiera słowo 'Drukarka„dwa razy i na wyjściu”Drukarka„zostało zastąpione słowem”Monitor'.
Wniosek
Do definiowania wzorców wyrabiania do różnych wyszukiwania można użyć wielu symboli i funkcji. Niektóre symbole powszechnie używane w wzorach od regularności są stosowane w tym samouczku z poleceniem „AWK”.