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, "Simple Pattern-Procedure Examples"
.