(gawk.info.gz) Other Arguments

Info Catalog (gawk.info.gz) Options (gawk.info.gz) Invoking Gawk (gawk.info.gz) Naming Standard Input
 
 2.3 Other Command-Line Arguments
 ================================
 
 Any additional arguments on the command line are normally treated as
 input files to be processed in the order specified.   However, an
 argument that has the form `VAR=VALUE', assigns the value VALUE to the
 variable VAR--it does not specify a file at all.  (See  Assignment
 Options.)
 
    All these arguments are made available to your `awk' program in the
 `ARGV' array ( Built-in Variables).  Command-line options and
 the program text (if present) are omitted from `ARGV'.  All other
 arguments, including variable assignments, are included.   As each
 element of `ARGV' is processed, `gawk' sets the variable `ARGIND' to
 the index in `ARGV' of the current element.
 
    The distinction between file name arguments and variable-assignment
 arguments is made when `awk' is about to open the next input file.  At
 that point in execution, it checks the file name to see whether it is
 really a variable assignment; if so, `awk' sets the variable instead of
 reading a file.
 
    Therefore, the variables actually receive the given values after all
 previously specified files have been read.  In particular, the values of
 variables assigned in this fashion are _not_ available inside a `BEGIN'
 rule ( BEGIN/END), because such rules are run before `awk'
 begins scanning the argument list.
 
    The variable values given on the command line are processed for
 escape sequences ( Escape Sequences).  (d.c.)
 
    In some earlier implementations of `awk', when a variable assignment
 occurred before any file names, the assignment would happen _before_
 the `BEGIN' rule was executed.  `awk''s behavior was thus inconsistent;
 some command-line assignments were available inside the `BEGIN' rule,
 while others were not.  Unfortunately, some applications came to depend
 upon this "feature."  When `awk' was changed to be more consistent, the
 `-v' option was added to accommodate applications that depended upon
 the old behavior.
 
    The variable assignment feature is most useful for assigning to
 variables such as `RS', `OFS', and `ORS', which control input and
 output formats before scanning the data files.  It is also useful for
 controlling state if multiple passes are needed over a data file.  For
 example:
 
      awk 'pass == 1  { PASS 1 STUFF }
           pass == 2  { PASS 2 STUFF }' pass=1 mydata pass=2 mydata
 
    Given the variable assignment feature, the `-F' option for setting
 the value of `FS' is not strictly necessary.  It remains for historical
 compatibility.
 
Info Catalog (gawk.info.gz) Options (gawk.info.gz) Invoking Gawk (gawk.info.gz) Naming Standard Input
automatically generated by info2html