Successivo: Lunghi, Precedente: Monouso, Su: Eseguire gawk [Contenuti][Indice]
Si può anche eseguire awk
senza indicare alcun file in input. Se
si immette la seguente riga di comando:
awk 'programma'
awk
prende come input del programma lo standard input,
che di solito significa qualsiasi cosa venga immesso dalla tastiera.
Ciò prosegue finché non si segnala una fine-file battendo Ctrl-d.
(In sistemi operativi non-POSIX, il carattere di fine-file può essere diverso.)
Per esempio, il seguente programma stampa un consiglio da amico (dalla Guida galattica per gli autostoppisti di Douglas Adams ), per non lasciarsi spaventare dalle complessità della programmazione per computer:
$ awk 'BEGIN { print "Non v\47allarmate!" }' -| Non v'allarmate!
awk
esegue le istruzioni associate a BEGIN
prima di leggere
qualsiasi input. Se non ci sono altre istruzioni nel proprio programma, come
in questo caso, awk
si ferma, invece di tentare di leggere input che
non sa come elaborare.
Il ‘\47’ è un modo straordinario (spiegato più avanti) per inserire un
apice singolo nel programma, senza dover ricorrere a fastidiosi meccanismi
di protezione della shell.
NOTA: Se si usa Bash come shell, si dovrebbe digitare il comando ‘set +H’ prima eseguire questo programma interattivamente, per non avere una cronologia dei comandi nello stile della C shell, che tratta il ‘!’ come un carattere speciale. Si raccomanda di inserire quel comando nel proprio file di personalizzazione della shell.
Il seguente semplice programma awk
emula il comando cat
; ovvero copia qualsiasi cosa si
batta sulla tastiera nel suo standard output (perché succede è spiegato fra
poco):
$ awk '{ print }' Ora è il tempo per tutti gli uomini buoni -| Ora è il tempo per tutti gli uomini buoni di venire in aiuto al loro paese. -| di venire in aiuto al loro paese. Or sono sedici lustri e sette anni, ... -| Or sono sedici lustri e sette anni, ... Cosa, io preoccupato? -| Cosa, io preoccupato? Ctrl-d
Successivo: Lunghi, Precedente: Monouso, Su: Eseguire gawk [Contenuti][Indice]