As mentioned previously, a print statement contains a list
of items, separated by commas. In the output, the items are normally
separated by single spaces. This need not be the case; a
single space is only the default. You can specify any string of
characters to use as the output field separator by setting the
built-in variable OFS. The initial value of this variable
is the string " ", that is, a single space.
The output from an entire print statement is called an
output record. Each print statement outputs one output
record and then outputs a string called the output record separator.
The built-in variable ORS specifies this string. The initial
value of ORS is the string "\n", i.e. a newline
character; thus, normally each print statement makes a separate line.
You can change how output fields and records are separated by assigning
new values to the variables OFS and/or ORS. The usual
place to do this is in the BEGIN rule
(see section The BEGIN and END Special Patterns), so
that it happens before any input is processed. You may also do this
with assignments on the command line, before the names of your input
files, or using the `-v' command line option
(see section Command Line Options).
The following example prints the first and second fields of each input record separated by a semicolon, with a blank line added after each line:
$ awk 'BEGIN { OFS = ";"; ORS = "\n\n" }
> { print $1, $2 }' BBS-list
-| aardvark;555-5553
-|
-| alpo-net;555-3412
-|
-| barfly;555-7685
...
If the value of ORS does not contain a newline, all your output
will be run together on a single line, unless you output newlines some
other way.
Go to the first, previous, next, last section, table of contents.