## 11.2. Command-Line Syntax

The syntax for invoking `awk` has two forms:

>     awk  [options]  'script'  var=value  file(s)
>     awk  [options]  -f scriptfile  var=value  file(s)

You can specify a script directly on the command line, or you can store a script in a scriptfile and specify it with `-f`. `nawk` allows multiple `-f` scripts. Variables can be assigned a value on the command line. The value can be a literal, a shell variable (`$``name`), or a command substitution (`‘``cmd``‘`), but the value is available only after the `BEGIN` statement is executed.

`awk` operates on one or more files. If none are specified (or if `-` is specified), `awk` reads from the standard input.

The recognized options are:

`-F` `fs`
  Set the field separator to fs. This is the same as setting the system variable `FS`. Original `awk` allows the field separator to be only a single character. `nawk` allows fs to be a regular expression. Each input line, or record, is divided into fields by whitespace (blanks or tabs) or by some other user-definable record separator. Fields are referred to by the variables `$1`, `$2`,..., `$```n``. `$0` refers to the entire record.
`-v` `var``=``value`
  Assign a value to variable var. This allows assignment before the script begins execution (available in `nawk` only).

To print the first three (colon-separated) fields of each record on separate lines:

>     awk -F: '{ print $1; print $2; print $3 }' /etc/passwd

More examples are shown in Section 11.3.3.

Copyright © 2003 O'Reilly & Associates. All rights reserved.