AWK je vhodný pro vyhledávání a zpracování vzorů. Skript se spustí, aby prohledal jeden nebo více souborů, aby identifikoval odpovídající vzory a zda uvedené vzory provádějí specifické úkoly. V této příručce se podíváme na příkaz AWK Linux a uvidíme, co umí.
Jaké operace může AWK dělat?
- Skenování souborů řádek po řádku
- Rozdělení každého vstupního řádku do polí
- Porovnání vstupních řádků a polí se vzory
- Provádění zadaných akcí na odpovídajících řádcích
Užitečnost příkazu AWK
- Změna datových souborů
- Vytváření formátovaných přehledů
Koncepty programování pro příkaz awk
- Formátovat výstupní řádky
- Podmíněné a smyčky
- Aritmetické a řetězcové operace
Syntaxe AWK
$ awk options 'selection _criteria {action }' input-file > output-file
Abychom demonstrovali více o použití AWK, použijeme textový soubor s názvem file.txt
1. sloupec => Položka,
2. sloupec => Model
3. sloupec => Země
4. sloupec => Cena
Příklady příkazů Awk
Tisk konkrétních sloupců
Chcete-li vytisknout 2. a 3. sloupec, proveďte níže uvedený příkaz.
$ awk '{print $2 "\t" $3}' file.txt
Výstup
Tisk všech řádků v souboru
Pokud chcete vypsat všechny řádky a sloupce v souboru, spusťte
$ awk ' {print $0}' file.txt
Výstup
Tisk všech čar, které odpovídají konkrétnímu vzoru
pokud chcete vytisknout řádky, které odpovídají určitému vzoru, syntaxe je taková, jak je uvedeno
$ awk '/variable_to_be_matched/ {print $0}' file.txt
Například, aby všechny položky odpovídaly písmenu „o“, syntaxe bude
$ awk '/o/ {print $0}' file.txt
Výstup
Chcete-li porovnat všechny položky s písmenem „e“
$ awk '/e/ {print $0}' file.txt
Výstup
Tisk sloupců, které odpovídají konkrétnímu vzoru
Když AWK najde shodu se vzorem, příkaz provede celý záznam. Výchozí nastavení můžete změnit zadáním instrukce pro zobrazení pouze určitých polí.
Například:
$ awk '/a/ {print $3 "\t" $4}' file.txt
Výše uvedený příkaz vytiskne 3. a 4. sloupec, kde se v kterémkoli ze sloupců objevuje písmeno ‚a‘
Výstup
Počítání a tisk shodného vzoru
Pomocí AWK můžete spočítat a vytisknout počet řádků pro každou shodu vzoru. Například níže uvedený příkaz počítá počet výskytů shodného vzoru
$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt
Výstup
Tisk řádků s více nebo méně než počtem znaků
AWK má vestavěnou funkci délky, která vrací délku řetězce. Z příkazu proměnná $0 ukládá celý řádek a v případě nepřítomnosti bloku těla se provede výchozí akce, tj. akce tisku. Pokud tedy v našem textovém souboru má řádek více než 18 znaků, výsledek porovnání je pravdivý a řádek se vytiskne, jak je uvedeno níže.
$ awk 'length($0) > 20' file.txt
Výstup
Uložení výstupu AWK do jiného souboru
Pokud si přejete uložit výstup svých výsledků, použijte operátor přesměrování>. Například
$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt
Výsledky můžete ověřit pomocí příkazu cat, jak je uvedeno níže
$ cat output.txt
Výstup
Závěr
AWK je další jednoduchý programovací skript, který můžete použít k manipulaci s textem v dokumentech nebo k provádění specifických funkcí. Sdílených příkazů je několik nebo mnoho, které ještě znáte nebo se s nimi nesetkáte.