Successivo: , Precedente: , Su: Per iniziare   [Contenuti][Indice]


1.3 Alcuni esempi molto semplici

I seguenti comandi eseguono un semplice programma awk che cerca nel file in input mail-list la stringa di caratteri ‘li’ (una sequenza di caratteri è solitamente chiamato una stringa; il termine stringa è basato su un uso linguistico, del tipo “una stringa di perle” o “una stringa di luci decorative”):

awk '/li/ { print $0 }' mail-list

Quando si incontra una riga che contiene ‘li’, la si stampa, perché ‘print $0 significa "stampa la riga corrente". (Lo scrivere solo ‘print’ ha lo stesso significato, quindi avremmo anche potuto limitarci a fare così).

Si sarà notato che delle barre (‘/’) delimitano la stringa ‘li’ nel programma awk. Le barre indicano che ‘li’ è il modello da ricercare. Questo tipo di notazione è definita come espressione regolare, e sarà trattata più avanti in maggior dettaglio (vedi la sezione Espressioni regolari). Il modello può corrispondere anche solo a una parte di una parola. Ci sono apici singoli che racchiudono il programma awk in modo che la shell non interpreti alcuna parte di esso come un carattere speciale della shell.

Questo è quello che il programma stampa:

$ awk '/li/ { print $0 }' mail-list
-| Amelia       555-5553     amelia.zodiacusque@gmail.com    F
-| Broderick    555-0542     broderick.aliquotiens@yahoo.com R
-| Julie        555-6699     julie.perscrutabor@skeeve.com   F
-| Samuel       555-3430     samuel.lanceolis@shu.edu        A

In una regola awk, il criterio di selezione o l’azione possono essere omessi, ma non entrambi. Se il criterio è omesso, l’azione viene applicata a ogni riga dell’input. Se l’azione viene omessa, per default si stampano tutte le righe che sono individuate dal criterio di selezione.

Quindi, si potrebbe omettere l’azione (l’istruzione print e le graffe) nell’esempio precedente e il risultato sarebbe lo stesso: awk stampa tutte le righe che corrispondono al criterio di ricerca ‘li’. Per confronto, omettendo l’istruzione print ma lasciando le graffe si richiede un’azione nulla, che non fa nulla (cioè non stampa alcuna riga).

Molti programmi awk pratici sono lunghi solo una o due righe. Qui sotto troviamo una collezione di programmi utili e corti, per iniziare. Alcuni di questi programmi contengono elementi del linguaggio che non sono ancora stati spiegati. (La descrizione del programma fornisce una buona idea di quel che si vuole ottenere, ma occorre leggere il resto del Documento per divenire esperti in awk!) Molti degli esempi usano un file-dati di nome data. Questo serve solo a indicare la posizione del nome; se questi programmi devono venir usati per se stessi, sostituire i propri nomi-file al posto di data. Per futura memoria, si noti che spesso c’è più di un modo per fare qualcosa in awk. In un altro momento, si potrebbe tornare a guardare questi esempi per vedere se si riescono a trovare modi differenti per fare le stesse cose mostrate qui appresso:


Successivo: , Precedente: , Su: Per iniziare   [Contenuti][Indice]