Linux: l’importanza di conoscere i comandi sed e awk

Per un sistemista Linux è importantissimo sapere usare la Shell ed i suoi comandi come sed e awk. Scriverò un piccola introduzione con esempi per farvi capire le potenzialità di questi comandi.

Il comando sed
sed è un editor di flusso: opera sui dati in modo seriale come li leggerebbe una persona. Semplificando si può pensare a sed come un modo automatico per cercare e sostituire delle parole con altre. Per esempio, questo comando sostituisce tutte le istanze di “marco” con “bruni” all’interno del file di testo prova.txt:

sed -e 's/marco/bruni/g' prova.txt

Chiunque abbia usato le espressioni regolari all’interno di un editor di testo o linguaggio di programmazione troverà sed facile da afferrare.

Il comando awk
Awk è un pò più ostico e ci vuole più tempo per impararlo. E’ un comando orientato ai record cioè awk è lo strumento giusto da utilizzare quando i dati contengono campi delimitati che si desidera manipolare.

Considerate questo elenco di nomi in un file persone.txt .
Marco Bruni
Mario Rossi
Marco Verdi
Giovanni Neri

per estrarre solo il nome, possiamo usare questo comando:

awk '{print $1}' persone.txt
Marco
Mario
Marco
Giovanni

oppure possiamo cercare solo le persone che si chiamano Marco

awk '$1 ~ /Marco/ {print}' persone.txt
Marco Bruni
Marco Verdi

Awk può fare molto di più, e dispone di nozioni di programmazione come variabili, condizionali e cicli. Ma anche solo una conoscenza di base di come abbinare ed estrarre campi ti porterà lontano. Se volete approfondire l’argomento vi consiglio di leggere questo manuale: Guida a a Sed e Awk

Voi cosa ne pensate?