Major Changes Between V7 and SVR3.1
===================================
The `awk' language evolved considerably between the release of
Version 7 Unix (1978) and the new version that was first made generally
available in System V Release 3.1 (1987). This minor node summarizes
the changes, with cross-references to further details:
* The requirement for `;' to separate rules on a line (Note:`awk'
Statements Versus Lines.).
* User-defined functions and the `return' statement (Note:User-Defined Functions.).
* The `delete' statement (Note:The `delete' Statement.).
* The `do'-`while' statement (Note:The `do'-`while' Statement.
).
* The built-in functions `atan2', `cos', `sin', `rand', and `srand'
(Note:Numeric Functions).
* The built-in functions `gsub', `sub', and `match' (Note:String
Manipulation Functions.).
* The built-in functions `close' and `system' (Note:Input/Output
Functions.).
* The `ARGC', `ARGV', `FNR', `RLENGTH', `RSTART', and `SUBSEP'
built-in variables (Note:Built-in Variables).
* The conditional expression using the ternary operator `?:' (Note:Conditional Expressions.).
* The exponentiation operator `^' (*note Arithmetic Operators:
Arithmetic Ops.) and its assignment operator form `^=' (Note:Assignment Expressions.).
* C-compatible operator precedence, which breaks some old `awk'
programs (*note Operator Precedence (How Operators Nest):
Precedence.).
* Regexps as the value of `FS' (Note:Specifying How Fields Are
Separated.) and as the third argument to the
`split' function (Note:String Manipulation Functions.
).
* Dynamic regexps as operands of the `~' and `!~' operators (Note:How to Use Regular Expressions.).
* The escape sequences `\b', `\f', and `\r' (Note:Escape
Sequences). (Some vendors have updated their old versions of
`awk' to recognize `\b', `\f', and `\r', but this is not something
you can rely on.)
* Redirection of input for the `getline' function (Note:Explicit
Input with `getline'.).
* Multiple `BEGIN' and `END' rules (Note:The `BEGIN' and `END'
Special Patterns.).
* Multidimensional arrays (*note Multidimensional Arrays:
Multi-dimensional.).