GNU Info

Info Node: (gawk.info)Plain Getline

(gawk.info)Plain Getline


Next: Getline/Variable Prev: Getline Up: Getline
Enter node , (file) or (file)node

Using `getline' with No Arguments
---------------------------------

   The `getline' command can be used without arguments to read input
from the current input file.  All it does in this case is read the next
input record and split it up into fields.  This is useful if you've
finished processing the current record, but want to do some special
processing _right now_ on the next record.  Here's an example:

     {
          if ((t = index($0, "/*")) != 0) {
               # value of `tmp' will be "" if t is 1
               tmp = substr($0, 1, t - 1)
               u = index(substr($0, t + 2), "*/")
               while (u == 0) {
                    if (getline <= 0) {
                         m = "unexpected EOF or error"
                         m = (m ": " ERRNO)
                         print m > "/dev/stderr"
                         exit
                    }
                    t = -1
                    u = index($0, "*/")
               }
               # substr expression will be "" if */
               # occurred at end of line
               $0 = tmp substr($0, u + 2)
          }
          print $0
     }

   This `awk' program deletes all C-style comments (`/* ...  */') from
the input.  By replacing the `print $0' with other statements, you
could perform more complicated processing on the decommented input,
such as searching for matches of a regular expression.  (This program
has a subtle problem--it does not work if one comment ends and another
begins on the same line.)

   This form of the `getline' command sets `NF', `NR', `FNR', and the
value of `$0'.

   *Note:* The new value of `$0' is used to test the patterns of any
subsequent rules.  The original value of `$0' that triggered the rule
that executed `getline' is lost.  By contrast, the `next' statement
reads a new record but immediately begins processing it normally,
starting with the first rule in the program.  Note: The `next'
Statement.


automatically generated by info2www version 1.2.2.9