GNU/Linux >> Znalost Linux >  >> Ubuntu

10 příkladů úžasných příkazů Awk v Linuxu

Awk je nejoblíbenější utilita, která je vyvinuta pro účely extrakce dat, zpracování textu a navíc jako vytváření formátovaných sestav. Je mnohem podobnější sed, ale výkonnější než sed, protože sed má omezení ve zpracování textu. AWK nemá pro své jméno konkrétní význam, protože je pojmenováno pomocí prvního písmene svých vývojářů Alfreda Aho, Petera J. Weinbergera a Briana Kernighana.

V tomto článku se naučíme 10 úžasných příkazů awk, které musíte znát. Jako příklad jsem vytvořil a přidal následující sadu dat v souboru student.txt. Soubor dat má 4 sloupce, kde první pole obsahuje křestní jméno, druhé pole obsahuje druhé jméno, třetí pole obsahuje věk a poslední obsahuje třídu.

Tisk konkrétního pole pomocí proměnné

Awk má mnoho předpřipravených proměnných, které mají svůj příslušný účel. Pomocí tohoto příkazu můžeme vytisknout všechna specifická data pole pomocí $x, kde x odkazuje na pozici číslování pole.

$ awk '{print $1, $2}' student.txt

proměnná BEGIN

Proměnná BEGIN se používá k přidání záhlaví nebo nadpisu k výsledným datům při provádění skriptu před zpracováním dat. Pomáhá při indexování při formátování datových tabulek. V následujícím příkladu jsem vytiskl nějaký text jako indexování a poté vytiskl všechna jména studentů.

$ awk 'BEGIN {print "Students : "} {print $1}' student.txt

Proměnná END

END je pravým opakem BEGIN, protože provádí skript po zpracování dat. Lze jej použít pro závěrečné vykazování souboru dat. V následujícím příkladu jsem vytiskl celý věk studentů a poté vytiskl některé závěrečné zprávy.

$ awk '{print $3}

END {

print "These are student age "

} ' student.txt

Oddělovač souborů

Mezera a mezera na tabulátoru jsou výchozí oddělovače příkazu awk, nicméně text můžeme oddělit na základě jiných oddělovačů, jako je čárka, lomítko atd. Abychom toho dosáhli, musíme k příkazu přidat příznak -F a oddělovač poskytnout v jednoduchých uvozovkách. .

$ awk -F':' '{print $1}' /etc/passwd

Spuštění skriptu ze souboru

Můžeme také spustit awk skript ze souboru, což nám umožňuje efektivně vytvářet sestavy. K tomu musíte vytvořit soubor, napsat skript a spustit jej pomocí příkazu awk. Pro ukázku můžete vytvořit název souboru demo_script a zkopírovat a vložit následující skript.

$ vi demo_script

{

sum+=$3

}

END {

print("Sum of all student age is", sum)

}

Příkaz awk poskytuje parametr -f pro spuštění skriptu ze souboru.

$ awk -f demo_script student.txt

Použití více skriptů

Pomocí středníku můžeme spustit více skriptů. V následujícím příkladu jsem vytiskl nějaký text a poté výstup zpracoval pomocí awk a vytiskl upravený výsledek.

$ echo "Hello, Dr. John" | awk '{$3="George"; print $0}'

Počítání počtu řádků

Číslo můžeme sestavě přidělit pomocí proměnné NR, což je awk vestavěná proměnná, která automaticky vytiskne číslo řádku do sestavy.

$ awk '{print NR "\t" $0}' student.txt

Počet Počet polí

Někdy jsme při přípravě dat zapomněli přidat data do konkrétního sloupce, což může vést k nesrovnalostem ve zprávě. Pole můžeme počítat pomocí proměnné NF, což nám usnadňuje kontrolu a uspořádání sestav.

$ awk '{print NR".",$0 "\n Count=" NF}' student.txt

Pokud je podmínka

Podmínku if můžeme použít při přípravě podmíněné zprávy. V následujícím příkladu vytiskneme všechny studenty, jejichž věk je nižší než 16

$ awk '

BEGIN{

print "Student whose age are under 16 are:"

}

{

if($3<16){

print $1

}

}' student.txt

Pro smyčku

V následujícím příkladu použijeme cyklus for k vytištění 5 náhodných čísel za sebou. Pro generování náhodných čísel použijeme funkci rand(), což je funkce vestavěná do systému. Tato funkce vygeneruje náhodné číslo v desítkové soustavě, takže musíme vynásobit 100, abychom dostali náhodná čísla 1 až 100.

$ awk 'BEGIN {

for (i = 1; i <= 5; i++){

print int(100 * rand())

}

}'

Závěr

V tomto článku jsme se dozvěděli o 10 úžasných příkazech a skriptech awk. Doufám, že se vám tento článek bude líbit.


Ubuntu
  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. Příklady příkazů rm v Linuxu

  1. Příklady příkazů ps v Linuxu

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

  3. w Příklady příkazů v Linuxu

  1. Příklady příkazů ac v Linuxu

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

  3. du příklady příkazů v Linuxu