Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
In fila per uno: gli array 107<br />
$ grep root /etc/passwd | awk -F : ’{ print $7}’<br />
/bin/bash<br />
$<br />
Et voilá. La shell di root è /bin/bash. La sintassi $n indica l’n -esimo campo delimitato<br />
dal separatore specificato con -f. Notate che abbiamo dovuto includere il corpo del<br />
programma tra apostrofi per evitare che la shell sottostante tentasse una espansione di<br />
$7 pensando che fosse una sua variabile d’ambiente.<br />
La numerazione dei campi parte da 1 e prosegue.<br />
Descrizione del linguaggio 7.3.2<br />
Un programma awk è un elenco di statement pattern {action} . Un pattern può essere:<br />
• BEGIN<br />
• END<br />
• expression<br />
• expression , expression<br />
Il pattern O l’action possono essere omessi. Se il pattern viene omesso è come se fosse<br />
risultato positivo al match. Se ad essere omessa è l’action si dà per assunta {print}.<br />
Elenchiamo rapidamente i costrutti:<br />
if ( expr ) statement<br />
if ( expr ) statement else statement<br />
while ( expr ) statement<br />
do statement while ( expr )<br />
for ( opt_expr ; opt_expr ; opt_expr ) statement<br />
for ( var in array ) statement<br />
continue<br />
break<br />
Il significato è in tutto e per tutto analogo a quello già affrontato con le shell. Per<br />
questo non spiegeremo da capo ciascuno di essi. È solo opportuno prestare attenzioni alle<br />
differenze che possiamo rilevare. Ad esempio con awk il costrutto if non viene terminato<br />
da fi. Anzi non viene terminato proprio.<br />
Come è prevedibile aspettarsi, awk supporta le regular expression. È sufficiente<br />
specificare la regexpr con la sintassi abituale: /regexpr/ . Tramite il costrutto expr ~<br />
/regexpr/ è possibile applicare una regular expression sul expr. Il costrutto risulta 1 se<br />
la regexpr ha un match positivo.<br />
In fila per uno: gli array 7.3.3<br />
awk offre supporto per array monodimensionali. La scrittura array["indice"] indica<br />
l’elemento contenuto nell’array array alla posizione "indice". Notate come