Appunti AWK

Un programma awk è un insieme di pattern e blocchi di codici: il codice viene eseguito su ogni riga che rispetta la condizione del pattern

awk '/foo/          { esegue questo blocco se "foo" è contenuto nella linea}'
awk '($1 == "bar")  { esegue se il primo campo è uguale a "bar" }'
awk '($NF ~ /baz/)  { esegue se l' ultimo campo è uguale a "baz" }'
awk '(NF == 1)      { esegue su linee con un solo campo }'
awk '(NR == 10)     { esegue solo su 10ma riga }'
awk '{ senza pattern, il codice è eseguito su ogni riga}'
awk '/string/'      # solo pattern senza blocco: stampa le righe che contengono "string"

ad esempio:

awk '{print $NF}'   # stampa l' ultimo campo di ogni linea
awk '/foo/'         # come "grep foo"

I blocchi BEGIN e END sono eseguiti rispettivamente prima e dopo che venga processato l’ input: esempio

# stampa il totale dell' ultima colonna
awk 'BEGIN { t = 0 } {t += $NF} END { print t }'
# le variabili non inizializzate vengono trattate come 0
# perciò si può omettere il precedente BEGIN:
awk '{t += $NF} END {print t}'

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...