Node:File Checking, Next:Ignoring Assigns, Previous:Rewind Function, Up:Data File Management
Normally, if you give awk a data file that isn't readable,
it stops with a fatal error. There are times when you
might want to just ignore such files and keep going. You can
do this by prepending the following program to your awk
program:
# readable.awk --- library file to skip over unreadable files
BEGIN {
for (i = 1; i < ARGC; i++) {
if (ARGV[i] ~ /^[A-Za-z_][A-Za-z0-9_]*=.*/ \
|| ARGV[i] == "-")
continue # assignment or standard input
else if ((getline junk < ARGV[i]) < 0) # unreadable
delete ARGV[i]
else
close(ARGV[i])
}
}
In gawk, the getline won't be fatal (unless
--posix is in force).
Removing the element from ARGV with delete
skips the file (since it's no longer in the list).