Comando awk su Linux: come valutare i file
Con il comando awk sfogliate accuratamente i file dando loro istruzioni per eseguire determinate azioni. La base di questo comando di Linux risale al 1977.
Cos’è il comando awk di Linux?
Linux dispone di un linguaggio di scripting e programmazione, awk, con il quale è possibile valutare e modificare i file. Questo linguaggio esiste dal 1977 e il suo nome risale ai tre sviluppatori Alfred Aho, Peter Weinberger e Brian Kernighan. Lo strumento si utilizza tramite la riga di comando o SSH (Secure Shell). In maniera analoga al comando grep di Linux e con l’aiuto del comando awk, nei file vengono ricercati determinati schemi fissi per poi essere modificati automaticamente in base a determinati parametri al verificarsi di determinate circostanze.
Come funziona il comando awk?
Il comando awk utilizza una combinazione di condizioni e istruzioni. Quando viene eseguito, scorre il rispettivo file riga per riga e controlla ogni nuova riga alla ricerca della condizione definita. Se questa è presente per la riga corrente, viene eseguita l’istruzione corrispondente. Se non è stata memorizzata alcuna condizione, l’istruzione viene eseguita per ogni singola riga. Se non viene memorizzata alcuna istruzione, viene eseguita solo l’istruzione standard della riga di input. Ad esempio, in Linux è possibile utilizzare awk per ricercare nei file determinati termini o schemi.
Come si presenta la sintassi del comando awk?
La sintassi del comando awk di Linux è la seguente:
$ awk [opzioni] "condizione {istruzioni}" [file di output]
shellQuali sono le opzioni del comando awk su Linux?
Sono possibili tre opzioni:
- -F [separatore]: con questa opzione specificate il separatore di un file. Il valore predefinito è uno spazio.
- -f [nome del file]: questa opzione specifica il file in cui viene eseguito il comando awk.
- -v: questa opzione viene utilizzata per aggiungere una variabile.
Esempio per il comando awk
Per aiutarvi a capire come utilizzare awk, vi mostreremo il suo funzionamento con un semplice esempio. Per farlo, utilizziamo un semplice file chiamato esempio.txt, che contiene un elenco di città, paesi e continenti in singole colonne. Il risultato si presenta così:
Città Paese Continente
Berlino Germania Europa
Parigi Francia Europa
Hanoi Vietnam Asia
Abuja Nigeria Africa
shellSe ora desiderate visualizzare l’intero file, utilizzate il comando seguente:
$ awk "{print $0}" esempio.txt
shellLa cosa si fa più interessante se decidete di visualizzare solo alcune colonne. Nel nostro esempio, la prima e la terza:
$ awk "{print $1, $3}" esempio.txt
shellIn questo caso si otterrà:
Berlino Europa
Parigi Europa
Hanoi Asia
Abuja Africa