you can tell if awk is parsing the first file given on the command line using FILENAME, thusly: {{{ awk BEGIN { rulesfile="" } rulesfile == "" { rulesfile = FILENAME; } FILENAME == rulesfile { build_rule($0); } FILENAME != rulesfile { apply_rule($0); } }}} Example: Suppose you have a text-line "database" and you want to make some batch changes to it, by replacing some old lines with new lines. {{{ awk BEGIN { rulesfile="" } rulesfile == "" { rulesfile = FILENAME; } rulesfile == FILENAME { replace[$1] = $0; } rulesfile != FILENAME \ { if ($1 in replace) print replace[$1]; else print; } }}} Another way, using ARGV: {{{ awk (FILENAME == ARGV[1]) { replace[$1] = $0; next } ($1 in replace) { print replace[$1]; next } { print } }}}
Summary:
This change is a minor edit.
Username: