Checking for Readable Data Files
--------------------------------
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).