Vyhledávání na webu

Jak psát skripty pomocí programovacího jazyka Awk – část 13


Po celou dobu od začátku série Awk až do části 12 jsme psali malé příkazy a programy Awk na příkazovém řádku a v shellových skriptech.

Nicméně Awk, stejně jako Shell, je také interpretovaný jazyk, a proto se vším, co jsme prošli od začátku této série, nyní můžete psát spustitelné skripty Awk.

Podobně jako píšeme skript shellu, skripty Awk začínají řádkem:

#! /path/to/awk/utility -f 

Například v mém systému je nástroj Awk umístěn v /usr/bin/awk, proto bych skript Awk spustil následovně:

#! /usr/bin/awk -f 

Vysvětlení řádku výše:

  1. #! – označované jako Shebang, které specifikuje interpret pro instrukce ve skriptu
  2. /usr/bin/awk – je interpret
  3. -f – volba tlumočníka, používaná ke čtení programového souboru

To znamená, že se nyní ponoříme do pohledu na některé příklady spustitelných skriptů Awk, můžeme začít s jednoduchým skriptem níže. Pomocí svého oblíbeného editoru otevřete nový soubor následovně:

vi script.awk

A vložte kód níže do souboru:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Uložte soubor a ukončete, poté udělejte skript spustitelným zadáním příkazu níže:

chmod +x script.awk

Poté jej spusťte:

./script.awk
Ukázkový výstup
Writing my first Awk executable script!

Kritický programátor se musí ptát: „kde jsou komentáře?“, ano, do skriptu Awk můžete také zahrnout komentáře. Psaní komentářů ve vašem kódu je vždy dobrou programátorskou praxí.

Pomáhá ostatním programátorům, kteří si prohlížejí váš kód, aby pochopili, čeho se v jednotlivých částech skriptu nebo souboru programu snažíte dosáhnout.

Proto můžete do skriptu výše zahrnout komentáře následovně.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

Dále se podíváme na příklad, kde čteme vstup ze souboru. Chceme vyhledat systémového uživatele s názvem aaronkilik v souboru účtu, /etc/passwd, a poté vytisknout uživatelské jméno, ID uživatele a uživatele GID takto:

Níže je obsah našeho skriptu s názvem second.awk.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

Uložte soubor a ukončete, vytvořte spustitelný skript a spusťte jej, jak je uvedeno níže:

chmod +x second.awk
./second.awk /etc/passwd
Ukázkový výstup
Username : aaronkilik User ID : 1000 User GID : 1000

V posledním příkladu níže použijeme příkaz do while k vytištění čísel od 0-10:

Níže je obsah našeho skriptu s názvem do.awk.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

Po uložení souboru udělejte skript spustitelný, jak jsme to udělali dříve. Poté jej spusťte:

chmod +x do.awk
./do.awk
Ukázkový výstup
0
1
2
3
4
5
6
7
8
9
10

souhrn

Dostali jsme se na konec této zajímavé série Awk, doufám, že jste se ze všech 13 dílů hodně naučili jako úvod do programovacího jazyka Awk.

Jak jsem zmínil od začátku, Awk je kompletní jazyk pro zpracování textu, z toho důvodu se můžete naučit více dalších aspektů programovacího jazyka Awk, jako jsou proměnné prostředí, pole, funkce (vestavěné a definované uživatelem) a další.

Existují ještě další části programování Awk, které se můžete naučit a zvládnout, takže níže jsem uvedl několik odkazů na důležité online zdroje, které můžete použít k rozšíření svých dovedností programování Awk, to nemusí být vše, co potřebujete, můžete se také podívat pro užitečné knihy o programování Awk.

Referenční odkazy: Uživatelská příručka GNU Awk a jazykové programování AWK

V případě jakýchkoli nápadů, které chcete sdílet, nebo otázek, použijte níže uvedený formulář pro komentáře. Nezapomeňte vždy zůstat ve spojení s Tecmintem pro další vzrušující seriály.