DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gawk) Next Statement

Info Catalog (gawk) Continue Statement (gawk) Statements (gawk) Nextfile Statement
 
 The `next' Statement
 ====================
 
    The `next' statement forces `awk' to immediately stop processing the
 current record and go on to the next record.  This means that no
 further rules are executed for the current record.  The rest of the
 current rule's action is not executed either.
 
    Contrast this with the effect of the `getline' function (
 Explicit Input with `getline' Getline.).  That too causes `awk' to
 read the next record immediately, but it does not alter the flow of
 control in any way.  So the rest of the current action executes with a
 new input record.
 
    At the highest level, `awk' program execution is a loop that reads
 an input record and then tests each rule's pattern against it.  If you
 think of this loop as a `for' statement whose body contains the rules,
 then the `next' statement is analogous to a `continue' statement: it
 skips to the end of the body of this implicit loop, and executes the
 increment (which reads another record).
 
    For example, if your `awk' program works only on records with four
 fields, and you don't want it to fail when given bad input, you might
 use this rule near the beginning of the program:
 
      NF != 4 {
        err = sprintf("%s:%d: skipped: NF != 4\n", FILENAME, FNR)
        print err > "/dev/stderr"
        next
      }
 
 so that the following rules will not see the bad record.  The error
 message is redirected to the standard error output stream, as error
 messages should be.   Special File Names in `gawk' Special Files.
 
    According to the POSIX standard, the behavior is undefined if the
 `next' statement is used in a `BEGIN' or `END' rule.  `gawk' will treat
 it as a syntax error.  Although POSIX permits it, some other `awk'
 implementations don't allow the `next' statement inside function bodies
 ( User-defined Functions User-defined.).  Just as any other
 `next' statement, a `next' inside a function body reads the next record
 and starts processing it with the first rule in the program.
 
    If the `next' statement causes the end of the input to be reached,
 then the code in any `END' rules will be executed.   The `BEGIN'
 and `END' Special Patterns BEGIN/END.
 
    *Caution:* Some `awk' implementations generate a run-time error if
 you use the `next' statement inside a user-defined function (
 User-defined Functions User-defined.).  `gawk' does not have this
 problem.
 
Info Catalog (gawk) Continue Statement (gawk) Statements (gawk) Nextfile Statement
automatically generated byinfo2html