You can set any awk
variable by including a variable assignment
among the arguments on the command line when you invoke awk
(see section Other Command Line Arguments). Such an assignment has
this form:
variable=text
With it, you can set a variable either at the beginning of the
awk
run or in between input files.
If you precede the assignment with the `-v' option, like this:
-v variable=text
then the variable is set at the very beginning, before even the
BEGIN
rules are run. The `-v' option and its assignment
must precede all the file name arguments, as well as the program text.
(See section 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
(see section Using ARGC
and ARGV
).
awk
processes the values of command line assignments for escape
sequences (d.c.) (see section Escape Sequences).
Go to the first, previous, next, last section, table of contents.