Assigning Variables on the Command Line
---------------------------------------
Any `awk' variable can be set by including a "variable assignment"
among the arguments on the command line when `awk' is invoked (Note:Other Command-Line Arguments.). Such an assignment
has the following form:
VARIABLE=TEXT
With it, a variable is set either at the beginning of the `awk' run or
in between input files. When the assignment is preceded with the `-v'
option, as in the following:
-v VARIABLE=TEXT
the variable is set at the very beginning, even before the `BEGIN'
rules are run. The `-v' option and its assignment must precede all the
file name arguments, as well as the program text. (Note:Command-Line
Options, for more information about the `-v' option.)
Otherwise, the variable assignment is performed at a time determined by
its position among the input file arguments--after the processing of the
preceding input file argument. For example:
awk '{ print $n }' n=4 inventory-shipped n=2 BBS-list
prints the value of field number `n' for all input records. Before the
first file is read, the command line sets the variable `n' equal to
four. This causes the fourth field to be printed in lines from the
file `inventory-shipped'. After the first file has finished, but
before the second file is started, `n' is set to two, so that the
second field is printed in lines from `BBS-list':
$ awk '{ print $n }' n=4 inventory-shipped n=2 BBS-list
-| 15
-| 24
...
-| 555-5553
-| 555-3412
...
Command-line arguments are made available for explicit examination by
the `awk' program in an array named `ARGV' (Note:Using `ARGC' and
`ARGV'.). `awk' processes the values of command-line
assignments for escape sequences (d.c.) (Note:Escape Sequences).