Go to the first, previous, next, last section, table of contents.


Assigning Variables on the Command Line

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.