GNU Info

Info Node: (gawk.info)Output Separators

(gawk.info)Output Separators


Next: OFMT Prev: Print Examples Up: Printing
Enter node , (file) or (file)node

Output Separators
=================

   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.  However, this doesn't need to be the case;
a single space is only the default.  Any string of characters may be
used 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" (or `ORS').  The
initial value of `ORS' is the string `"\n"'; i.e., a newline character.
Thus, each `print' statement normally makes a separate line.

   In order to change how output fields and records are separated,
assign new values to the variables `OFS' and `ORS'.  The usual place to
do this is in the `BEGIN' rule (Note: The `BEGIN' and `END' Special
Patterns.), so that it happens before any input is
processed.  It can also be done with assignments on the command line,
before the names of the input files, or using the `-v' command-line
option (Note: 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 newline:

     $ 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, the program's
output is run together on a single line.


automatically generated by info2www version 1.2.2.9