Successivo: , Precedente: , Su: Getline   [Contenuti][Indice]


4.10.2 Usare getline in una variabile

Si può usare ‘getline var’ per leggere il record successivo in input ad awk nella variabile var. Non vien fatta nessun’altra elaborazione. Per esempio, supponiamo che la riga successiva sia un commento o una stringa particolare, e la si voglia leggere senza innescare nessuna regola. Questa forma di getline permette di leggere quella riga e memorizzarla in una variabile in modo che il ciclo principale di awk che "legge una riga e controlla ogni regola" non la veda affatto. L’esempio seguente inverte tra loro a due a due le righe in input:

{
     if ((getline tmp) > 0) {
          print tmp
          print $0
     } else
          print $0
}

Prende la seguente lista:

wan
tew
free
phore

e produce questo risultato:

tew
wan
phore
free

Il comando getline usato in questo modo imposta solo le variabili NR, FNR e RT (e, naturalmente, var). Il record non viene suddiviso in campi, e quindi i valori dei campi (compreso $0) e il valore di NF non cambiano.