Successivo: Lettere di controllo, Su: Printf [Contenuti][Indice]
printf
Una semplice istruzione printf
è qualcosa di simile a questo:
printf formato, elemento1, elemento2, …
Come nel caso di print
, l’intera lista degli argomenti può
opzionalmente essere racchiusa fra
parentesi. Anche qui, le parentesi sono obbligatorie se l’espressione di
qualche elemento usa l’operatore
relazionale ‘>’, che potrebbe
essere confuso con una ridirezione dell’output (vedi la sezione Ridirigere l’output di print
e printf
).
La differenza tra printf
e print
è l’argomento formato.
Questo è un’espressione il cui valore è visto come una stringa;
specifica come scrivere in output ognuno degli altri argomenti. È chiamata
stringa di formato.
La stringa di formato è molto simile a quella usata dalla funzione di
libreria ISO C printf()
. Buona parte del formato è testo da
stampare così come è scritto.
All’interno di questo testo ci sono degli specificatori di formato,
uno per ogni elemento da stampare.
Ogni specificatore di formato richiede di stampare l’elemento successivo
nella lista degli argomenti
in quella posizione del formato.
L’istruzione printf
non aggiunge in automatico un ritorno a capo
al suo output. Scrive solo quanto specificato dalla stringa di formato.
Quindi, se serve un ritorno a capo, questo va incluso nella stringa di formato.
Le variabili di separazione dell’output OFS
e ORS
non hanno
effetto sulle istruzioni printf
.
Per esempio:
$ awk 'BEGIN { > ORS = "\nAHI!\n"; OFS = "+" > msg = "Non v\47allarmate!" > printf "%s\n", msg > }' -| Non v'allarmate!
Qui, né il ‘+’ né l’esclamazione ‘AHI!’ compaiono nel messaggio in output.