Regulárny výraz (regulárny výraz) sa používa na nájdenie danej postupnosti znakov v súbore. Na definovanie vzoru možno použiť symboly, ako sú písmená, číslice a špeciálne znaky. Rôzne úlohy je možné ľahko dokončiť pomocou regulárnych výrazov. V tomto tutoriáli vám ukážeme, ako používať vzory regulárneho výrazu pomocou príkazu 'awk'.
Základné znaky použité vo vzorkách
Na definovanie vzoru regulárneho výrazu je možné použiť veľa znakov. Znaky najčastejšie používané na definovanie vzorov regulárneho výrazu sú definované nižšie.
Postava | Popis |
---|---|
. | Priraďte ľubovoľný znak bez nového riadku (\ n) |
\ | Uveďte nový metaznak |
^ | Porovnajte začiatok riadku |
$ | Zarovnajte koniec riadku |
| | Definujte náhradníka |
() | Definujte skupinu |
[] | Definujte triedu znakov |
\ w | Priraďte ľubovoľné slovo |
\ s | Priraďte ľubovoľný znak medzier |
\ d | Priraďte ľubovoľnú číslicu |
\ b | Priraďte ľubovoľnú hranicu slova |
Vytvorte súbor
Ak chcete pokračovať v tejto príručke, vytvorte textový súbor s názvom Produkty.TXT. Súbor by mal obsahovať štyri polia: ID, Meno, Typ a Cena.
ID Názov Typ Cena
p1001 15 "Monitor Monitor 100 dolárov
p1002 A4tech Mouse Myš 10 dolárov
p1003 Samsung Printer Printer 50 dolárov
p1004 Skener HP Skener 60 dolárov
myš p1005 Logitech Mouse myš 15 dolárov
Príklad 1: Definujte vzor regulárneho výrazu pomocou triedy znakov
Nasledujúci príkaz „awk“ vyhľadá a vytlačí riadky obsahujúce znak „n“, za ktorým nasledujú znaky „er“.
$ mačacie výrobky.TXT$ awk '/ [n] [er] / print $ 0' produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Na výstupe je riadok, ktorý zodpovedá vzoru. Tu sa vzoru zhoduje iba jeden riadok.
Príklad 2: Definujte vzor regulárneho výrazu pomocou symbolu „^“
Nasledujúci príkaz „awk“ vyhľadá a vytlačí riadky, ktoré začínajú znakom „p“ a zahŕňajú číslo 3.
$ mačacie výrobky.TXT$ awk '/ ^ s.* 3 / print $ 0 'produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Tu existuje jeden riadok, ktorý zodpovedá vzoru.
Príklad 3: Definujte vzor regulárneho výrazu pomocou funkcie gsub
The gsub () Táto funkcia sa používa na globálne vyhľadanie a nahradenie textu. Nasledujúci príkaz „awk“ vyhľadá pred tlačou slovo „Scanner“ a nahradí ho slovom „Router“.
$ mačacie výrobky.TXT$ awk 'gsub (/ Scanner /, "Router")' produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Existuje jeden riadok, ktorý obsahuje slovo „Skener„a“Skener„sa nahrádza slovom„Router„pred vytlačením riadku.
Príklad 4: Definujte vzor regulárneho výrazu pomocou znaku „*“
Nasledujúci príkaz „awk“ vyhľadá a vytlačí ľubovoľný reťazec, ktorý začína reťazcom „Mo“, a obsahuje akýkoľvek nasledujúci znak.
$ mačacie výrobky.TXTProdukty $ awk '/ Mo * / print $ 0'.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Tri riadky zodpovedajú vzoru: dva riadky obsahujú slovo „Myš„a jeden riadok obsahuje slovo“Monitor„.
Príklad 5: Definujte vzor regulárneho výrazu pomocou symbolu „$“
Nasledujúci príkaz „awk“ vyhľadá a vytlačí riadky v súbore, ktorý končí číslom 5.
$ mačacie výrobky.TXT$ awk '/ 5 $ / print $ 0' produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. V súbore je iba jeden riadok, ktorý končí číslom 5.
Príklad 6: Definujte vzor regulárneho výrazu pomocou znakov '^' a '|' symboly
„^„symbol označuje začiatok riadku a“|Symbol 'označuje logický príkaz OR. Nasledujúci príkaz „awk“ vyhľadá a vytlačí riadky, ktoré začínajú znakom “p„a obsahovať buď“Skener„alebo“Myš„.
$ mačacie výrobky.TXT$ awk '/ ^ s.* (Skener | Myš) / 'produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup ukazuje, že dva riadky obsahujú slovo 'Myš„a jeden riadok obsahuje slovo“Skener„. Tri riadky začínajú znakom „p„.
Príklad 7: Definujte vzor regulárneho výrazu pomocou symbolu „+“
„+„operátor slúži na nájdenie aspoň jednej zhody. Nasledujúci príkaz „awk“ vyhľadá a vytlačí riadky, ktoré obsahujú znak 'n' aspoň raz.
$ mačacie výrobky.TXT$ awk '/ n + / print' produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Tu postavan„obsahuje sa vyskytuje najmenej raz v riadkoch, ktoré obsahujú slová Monitor, tlačiareň a skener.
Príklad 8: Definujte vzor regulárneho výrazu pomocou funkcie gsub ()
Nasledujúci príkaz „awk“ globálne vyhľadá slovo „Tlačiareň„a nahradiť ho slovom“Monitor'pomocou funkcia gsub ().
$ mačacie výrobky.TXT$ awk 'gsub (/ Printer /, “Monitor”) print $ 0' produkty.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Štvrtý riadok súboru obsahuje slovo „Tlačiareň„dvakrát a na výstupe“Tlačiareň„bolo nahradené slovom“Monitor„.
Záver
Mnoho symbolov a funkcií možno použiť na definovanie vzorov regulárneho výrazu pre rôzne úlohy hľadania a nahradenia. Niektoré symboly bežne používané vo vzoroch regulárneho výrazu sú v tomto výučbe použité pomocou príkazu 'awk'.