manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Output Separators,  Next: OFMT,  Prev: Print Examples,  Up: Printing

5.3 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 simply the default.  Any string of characters may be used as
the "output field separator" by setting the predefined variable 'OFS'.
The initial value of this variable is the string '" "' (i.e., 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 BEGIN/END::), 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 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 }' mail-list
     -| Amelia;555-5553
     -|
     -| Anthony;555-3412
     -|
     -| Becky;555-7685
     -|
     -| Bill;555-1675
     -|
     -| Broderick;555-0542
     -|
     -| Camilla;555-2912
     -|
     -| Fabius;555-1234
     -|
     -| Julie;555-6699
     -|
     -| Martin;555-6480
     -|
     -| Samuel;555-3430
     -|
     -| Jean-Paul;555-2127
     -|

   If the value of 'ORS' does not contain a newline, the program's
output runs together on a single line.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.