Successivo: File vuoti, Precedente: Funzione rewind, Su: Gestione File Dati [Contenuti][Indice]
Normalmente, se si fornisce ad awk
un file-dati che non è leggibile,
il programma
si arresta con un errore fatale. Ci sono casi in cui sarebbe preferibile
ignorare semplicemente questi file e proseguire.74
Si può far questo facendo precedere il proprio programma awk
dal
seguente programma:
# readable.awk --- file di libreria per saltare file non leggibili BEGIN { for (i = 1; i < ARGC; i++) { if (ARGV[i] ~ /^[a-zA-Z_][a-zA-Z0-9_]*=.*/ \ || ARGV[i] == "-" || ARGV[i] == "/dev/stdin") continue # assegnamento di variabile o standard input else if ((getline aperdere < ARGV[i]) < 0) # file non leggibile delete ARGV[i] else close(ARGV[i]) } }
Questo codice funziona, perché l’errore di getline
non è fatale.
Rimuovendo l’elemento da ARGV
con delete
si tralascia il file (perché non è più nella lista).
Si veda anche Usare ARGC
e ARGV
.
Poiché per i nomi delle variabili awk
si possono usare solo lettere
dell’alfabeto inglese, di proposito il controllo con espressioni regolari
non usa classi di
carattere come ‘[:alpha:]’ e ‘[:alnum:]’
(vedi la sezione Usare espressioni tra parentesi quadre).
Il criterio di
ricerca speciale BEGINFILE
(vedi la sezione I criteri di ricerca speciali BEGINFILE
ed ENDFILE
) fornisce un
meccanismo alternativo per trattare i file che non sono leggibili.
Tuttavia, il codice qui proposto fornisce una soluzione portabile.