www.delorie.com/gnu/docs/gawk/gawk_82.html   search  
 
Buy the book!


The GNU Awk User's Guide

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.3.2 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 (see section 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. (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 the ARGV array (see section Using ARGC and ARGV). awk processes the values of command-line assignments for escape sequences (see section 3.2 Escape Sequences). (d.c.)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003