Successivo: , Precedente: , Su: Invocare Gawk   [Contenuti][Indice]


2.4 Come specificare lo standard input insieme ad altri file

Capita spesso di voler leggere lo standard input assieme ad altri file. Per esempio, leggere un file, leggere lo standard input derivante da una pipe, e poi leggere un altro file.

Il modo di indicare lo standard input, con tutte le versioni di awk, è quello di usare un segno meno o trattino da solo, ‘-’. Per esempio:

qualche_comando | awk -f ilmioprogramma.awk file1 - file2

In questo caso, awk legge prima file1, poi legge l’output di qualche_comando, e infile legge file2.

Si può anche usare "-" per indicare lo standard input quando si leggono i file con getline (vedi la sezione Usare getline da un file). E si può perfino usare "-" con l’opzione -f per leggere il sorgente del programma dallo standard input (vedi la sezione Opzioni sulla riga di comando).

In aggiunta, gawk consente di specificare il nome-file speciale /dev/stdin, sia sulla riga di comando che quando si usa getline. Anche qualche altra versione di awk include questa funzionalità, ma non è standard. (Alcuni sistemi operativi prevedono un file /dev/stdin nel filesystem; comunque, gawk elabora sempre questo nome-file per conto suo [ossia non importa se il sistema operativo rende disponibile il file o no].)