Go forward to Fields.
Go backward to Reading Files.
Go up to Reading Files.

How Input is Split into Records
===============================

   The `awk' language divides its input into records and fields.
Records are separated by a character called the "record separator".  By
default, the record separator is the newline character, defining a
record to be a single line of text.

   Sometimes you may want to use a different character to separate your
records.  You can use a different character by changing the built-in
variable `RS'.  The value of `RS' is a string that says how to separate
records; the default value is `"\n"', the string containing just a
newline character.  This is why records are, by default, single lines.

   `RS' can have any string as its value, but only the first character
of the string is used as the record separator.  The other characters are
ignored.  `RS' is exceptional in this regard; `awk' uses the full value
of all its other built-in variables.

   You can change the value of `RS' in the `awk' program with the
assignment operator, `=' (see Assignment Expressions: Assignment Ops.).  The new record-separator character should be enclosed in
quotation marks to make a string constant.  Often the right time to do
this is at the beginning of execution, before any input has been
processed, so that the very first record will be read with the proper
separator.  To do this, use the special `BEGIN' pattern (*note `BEGIN'
and `END' Special Patterns: BEGIN/END.).  For example:

     awk 'BEGIN { RS = "/" } ; { print $0 }' BBS-list

changes the value of `RS' to `"/"', before reading any input.  This is
a string whose first character is a slash; as a result, records are
separated by slashes.  Then the input file is read, and the second rule
in the `awk' program (the action with no pattern) prints each record.
Since each `print' statement adds a newline at the end of its output,
the effect of this `awk' program is to copy the input with each slash
changed to a newline.

   Another way to change the record separator is on the command line,
using the variable-assignment feature (see Invoking `awk': Command Line.).

     awk '{ print $0 }' RS="/" BBS-list

This sets `RS' to `/' before processing `BBS-list'.

   Reaching the end of an input file terminates the current input
record, even if the last character in the file is not the character in
`RS'.

   The empty string, `""' (a string of no characters), has a special
meaning as the value of `RS': it means that records are separated only
by blank lines.  See Multiple-Line Records: Multiple Line, for more
details.

   The `awk' utility keeps track of the number of records that have
been read so far from the current input file.  This value is stored in a
built-in variable called `FNR'.  It is reset to zero when a new file is
started.  Another built-in variable, `NR', is the total number of input
records read so far from all files.  It starts at zero but is never
automatically reset to zero.

   If you change the value of `RS' in the middle of an `awk' run, the
new value is used to delimit subsequent records, but the record
currently being processed (and records already processed) are not
affected.