Páni

Jak používat Regex s příkazem 'awk'

Jak používat Regex s příkazem 'awk'

Regulární výraz (regulární výraz) se používá k vyhledání dané posloupnosti znaků v souboru. K definování vzoru lze použít symboly, jako jsou písmena, číslice a speciální znaky. Různé úkoly lze snadno dokončit pomocí vzorů regulárního výrazu. V tomto kurzu vám ukážeme, jak používat regexové vzory pomocí příkazu 'awk'.

Základní znaky používané ve vzorech

Mnoho znaků lze použít k definování vzoru regulárního výrazu. Níže jsou definovány znaky, které se nejčastěji používají k definování vzorů regulárního výrazu.

Charakter Popis
. Porovnat libovolný znak bez nového řádku (\ n)
\ Uveďte novou metaznak
^ Porovná začátek řádku
$ Porovnejte konec řádku
| Definujte alternativu
() Definujte skupinu
[] Definujte třídu znaků
\ w Porovnejte libovolné slovo
\ s Porovnejte libovolný znak prázdného místa
\ d Porovnejte libovolnou číslici
\ b Porovnejte jakoukoli hranici slova

Vytvořte soubor

Chcete-li pokračovat v tomto kurzu, vytvořte textový soubor s názvem produkty.txt. Soubor by měl obsahovat čtyři pole: ID, Název, Typ a Cena.

ID Název Typ Cena

p1001 15 "Monitor Monitor 100 $

p1002 A4tech Mouse Mouse $ 10

p1003 Samsung Printer Printer $ 50

p1004 Skener HP Skener 60 $

p1005 Logitech Mouse Mouse $ 15

Příklad 1: Definujte vzor regulárního výrazu pomocí třídy znaků

Následující příkaz 'awk' vyhledá a vytiskne řádky obsahující znak 'n' následovaný znaky 'er'.

$ kočičí výrobky.txt
$ awk '/ [n] [er] / print $ 0' produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup ukazuje řádek, který odpovídá vzoru. Zde vzor odpovídá pouze jednomu řádku.

Příklad 2: Definujte vzor regulárního výrazu pomocí symbolu „^“

Následující příkaz 'awk' vyhledá a vytiskne řádky, které začínají znakem 'p' a obsahují číslo 3.

$ kočičí výrobky.txt
$ awk '/ ^ str.* 3 / print $ 0 'products.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Zde je jeden řádek, který odpovídá vzoru.

Příklad 3: Definujte vzor regulárního výrazu pomocí funkce gsub

The gsub () funkce se používá ke globálnímu vyhledávání a nahrazování textu. Následující příkaz 'awk' vyhledá slovo 'Scanner' a nahradí jej slovem 'Router' před tiskem výsledku.

$ kočičí výrobky.txt
$ awk 'gsub (/ Scanner /, "Router")' produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Jeden řádek obsahuje slovo „Skener', a 'Skener„se nahrazuje slovem“Router'před vytištěním řádku.

Příklad 4: Definujte vzor regulárního výrazu pomocí '*'

Následující příkaz „awk“ vyhledá a vytiskne jakýkoli řetězec, který začíná řetězcem „Mo“ a zahrnuje jakýkoli následující znak.

$ kočičí výrobky.txt
$ awk '/ Mo * / print $ 0' produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Tři řádky odpovídají vzoru: dva řádky obsahují slovo 'Myš„a jeden řádek obsahuje slovo“Monitor''.

Příklad 5: Definujte vzor regulárního výrazu pomocí symbolu „$“

Následující příkaz 'awk' vyhledá a vytiskne řádky v souboru, které končí číslem 5.

$ kočičí výrobky.txt
$ awk '/ 5 $ / print $ 0' produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů.  V souboru je pouze jeden řádek, který končí číslem 5.

Příklad 6: Definujte regulární výraz pomocí '^' a '|' symboly

'^'symbol označuje začátek řádku a'|Symbol 'označuje logický příkaz OR. Následující příkaz 'awk' vyhledá a vytiskne řádky, které začínají znakem 'p'and contain either'Skener'nebo'Myš''.

$ kočičí výrobky.txt
$ awk '/ ^ str.* (Skener | Myš) / 'produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Výstup ukazuje, že dva řádky obsahují slovo 'Myš„a jeden řádek obsahuje slovo“Skener''. Tři řádky začínají znakem 'p''.

Příklad 7: Definujte vzor regulárního výrazu pomocí symbolu „+“

'+„operátor slouží k vyhledání alespoň jedné shody. Následující příkaz 'awk' vyhledá a vytiskne řádky, které obsahují znak 'n' alespoň jednou.

$ kočičí výrobky.txt
$ awk '/ n + / print' produkty.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Tady postavan'contains se vyskytuje alespoň jednou v řádcích, které obsahují slova Monitor, tiskárna a skener.

Příklad 8: Definujte vzor regulárního výrazu pomocí funkce gsub ()

Následující příkaz 'awk' globálně vyhledá slovo 'Tiskárna„a nahradit jej slovem“Monitor' za použití funkce gsub ().

$ kočičí výrobky.txt
$ awk 'gsub (/ Printer /, “Monitor”) print $ 0' products.txt

Následující výstup bude vytvořen po spuštění výše uvedených příkazů. Čtvrtý řádek souboru obsahuje slovo „Tiskárna„dvakrát a na výstupu,“Tiskárna„bylo nahrazeno slovem“Monitor''.

Závěr

Mnoho symbolů a funkcí lze použít k definování vzorů regulárního výrazu pro různé úlohy hledání a nahrazení. Některé symboly běžně používané ve vzorech regulárních výrazů jsou v tomto kurzu použity pomocí příkazu 'awk'.

Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...