GNU/Linux >> Znalost Linux >  >> Linux

Příkaz AWK v Linuxu/Unixu

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.


Linux
  1. Příkaz wc pro Linux

  2. Linuxový příkaz grep

  3. V příkladech příkazů v Linuxu

  1. Výukový program příkazu Linux/UNIX Awk s příklady

  2. soubor Příklady příkazů v Linuxu

  3. příklady příkazů tail v UNIX/Linux

  1. Linux Tail Command

  2. Linux Touch Command

  3. Cat Command v Linuxu