Role of output separator in print statement
When we print multiple fields separated by comma using print
command, it uses OFS
and ORS
built-in variable values to decide how to print the fields and rows. Output field separator is stored in the OFS
variable and output record separator is stored in the ORS
variable. By default OFS
is set to single space and ORS
is set to a single newline. We can change these values anytime as required, but the usually best place to assign new values to OFS
and ORS
is in the BEGIN
statement.For example, in the following example we print all the fields of car
database with a colon between them as separator, and the two newlines after each processing record as follows:
$ vi output_separator.awk
BEGIN { OFS = ":"
ORS = "\n\n"
}
{ print $1,$2,$3,$4,$5 }
$ awk -f output_separator.awk cars.dat
The output on execution of the preceding code is as follows:
maruti:swift:2007:50000:5 honda:city:2005:60000:3 maruti:dezire:2009:3100:6 chevy:beat:2005:33000...