In this case, you may set ARGV[1]
or ARGC
inside the BEGIN
block:
BEGIN {
print ARGV[1]
# Empty ARGV[1] so that it is not treated as a filename
ARGV[1]=""
}
{
print $1, $3
}
END {
print "Done"
}
man 1p awk
:
ARGC
The number of elements in the ARGV
array.
ARGV
An array of command line arguments, excluding options and the program argument, numbered from zero to ARGC
−1.
The arguments in ARGV
can be modified or added to; ARGC
can be altered. As each input file ends, awk shall treat the next non-null element of ARGV
, up to the current value of ARGC
−1, inclusive, as the name of the next input file. Thus, setting an element of ARGV
to null means that it shall not be treated as an input file. The name '−
' indicates the standard input. If an argument matches the format of an assignment operand, this argument shall be treated as an assignment rather than a file argument.