Previous: Using Variables, Up: Variables [Contents][Index]
Any awk
variable can be set by including a variable assignment
among the arguments on the command line when awk
is invoked
(see Other 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 execute. The -v option and its assignment
must precede all the file name arguments, as well as the program text.
(See 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 mail-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
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 mail-list:
$ awk '{ print $n }' n=4 inventory-shipped n=2 mail-list -| 15 -| 24 … -| 555-5553 -| 555-3412 …
Command-line arguments are made available for explicit examination by
the awk
program in the ARGV
array
(see ARGC and ARGV).
awk
processes the values of command-line assignments for escape
sequences
(see Escape Sequences).
(d.c.)
Previous: Using Variables, Up: Variables [Contents][Index]