diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1321 |
1 files changed, 661 insertions, 660 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 2d1ee6c3..afe757c3 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -832,11 +832,11 @@ History of `awk' and `gawk' 1 part `egrep' 1 part `snobol' 2 parts `ed' 3 parts C - Blend all parts well using `lex' and `yacc'. Document minimally - and release. + Blend all parts well using `lex' and `yacc'. Document minimally and +release. - After eight years, add another part `egrep' and two more parts C. - Document very well and release. + After eight years, add another part `egrep' and two more parts C. +Document very well and release. The name `awk' comes from the initials of its designers: Alfred V. Aho, Peter J. Weinberger and Brian W. Kernighan. The original version @@ -928,11 +928,10 @@ differences between `gawk' and other `awk' implementations.(1) Finally, any `gawk' features that are not in the POSIX standard for `awk' are noted. - There are subsections labeled as *Advanced Notes* scattered -throughout the Info file. They add a more complete explanation of -points that are relevant, but not likely to be of interest on first -reading. All appear in the index, under the heading "advanced -features." + There are sidebars scattered throughout the Info file. They add a +more complete explanation of points that are relevant, but not likely +to be of interest on first reading. All appear in the index, under the +heading "sidebar." Most of the time, the examples use complete `awk' programs. Some of the more advanced sections show only the part of the `awk' program that @@ -1530,11 +1529,10 @@ at the shell.) program that users can invoke without their having to know that the program is written in `awk'. -Advanced Notes: Portability Issues with `#!' --------------------------------------------- + Portability Issues with `#!' -Some systems limit the length of the interpreter name to 32 characters. -Often, this can be dealt with by using a symbolic link. + Some systems limit the length of the interpreter name to 32 +characters. Often, this can be dealt with by using a symbolic link. You should not put more than one argument on the `#!' line after the path to `awk'. It does not work. The operating system treats the rest @@ -3259,11 +3257,10 @@ character not shown in the previous list. * A backslash before any other character means to treat that character literally. -Advanced Notes: Backslash Before Regular Characters ---------------------------------------------------- + Backslash Before Regular Characters -If you place a backslash in a string constant before something that is -not one of the characters previously listed, POSIX `awk' purposely + If you place a backslash in a string constant before something that +is not one of the characters previously listed, POSIX `awk' purposely leaves what happens as undefined. There are two choices: Strip the backslash out @@ -3278,10 +3275,9 @@ Leave the backslash alone Some other `awk' implementations do this. In such implementations, typing `"a\qc"' is the same as typing `"a\\qc"'. -Advanced Notes: Escape Sequences for Metacharacters ---------------------------------------------------- + Escape Sequences for Metacharacters -Suppose you use an octal or hexadecimal escape to represent a regexp + Suppose you use an octal or hexadecimal escape to represent a regexp metacharacter. (See *note Regexp Operators::.) Does `awk' treat the character as a literal character or as a regexp operator? @@ -3823,11 +3819,10 @@ constants," for several reasons: * Using regexp constants is better form; it shows clearly that you intend a regexp match. -Advanced Notes: Using `\n' in Bracket Expressions of Dynamic Regexps --------------------------------------------------------------------- + Using `\n' in Bracket Expressions of Dynamic Regexps -Some commercial versions of `awk' do not allow the newline character to -be used inside a bracket expression for a dynamic regexp: + Some commercial versions of `awk' do not allow the newline character +to be used inside a bracket expression for a dynamic regexp: $ awk '$0 ~ "[ \t\n]"' error--> awk: newline in character class [ @@ -4064,10 +4059,9 @@ that this will never happen. Options::). In compatibility mode, only the first character of the value of `RS' is used to determine the end of the record. -Advanced Notes: `RS = "\0"' Is Not Portable -------------------------------------------- + `RS = "\0"' Is Not Portable -There are times when you might want to treat an entire data file as a + There are times when you might want to treat an entire data file as a single record. The only way to make this happen is to give `RS' a value that you know doesn't occur in the input file. This is hard to do in a general way, such that a program always works for arbitrary @@ -4347,11 +4341,10 @@ fields using the _current_ value of `FS'. This also applies to any built-in function that updates `$0', such as `sub()' and `gsub()' (*note String Functions::). -Advanced Notes: Understanding `$0' ----------------------------------- + Understanding `$0' -It is important to remember that `$0' is the _full_ record, exactly as -it was read from the input. This includes any leading or trailing + It is important to remember that `$0' is the _full_ record, exactly +as it was read from the input. This includes any leading or trailing whitespace, and the exact whitespace (or other characters) that separate the fields. @@ -4680,14 +4673,13 @@ value of `FS' (`==' means "is equal to"): (This is a `gawk' extension; it is not specified by the POSIX standard.) -Advanced Notes: Changing `FS' Does Not Affect the Fields --------------------------------------------------------- + Changing `FS' Does Not Affect the Fields -According to the POSIX standard, `awk' is supposed to behave as if each -record is split into fields at the time it is read. In particular, -this means that if you change the value of `FS' after a record is read, -the value of the fields (i.e., how they were split) should reflect the -old value of `FS', not the new one. + According to the POSIX standard, `awk' is supposed to behave as if +each record is split into fields at the time it is read. In +particular, this means that if you change the value of `FS' after a +record is read, the value of the fields (i.e., how they were split) +should reflect the old value of `FS', not the new one. However, many older implementations of `awk' do not work this way. Instead, they defer splitting the fields until a field is actually @@ -4707,10 +4699,9 @@ like: root:nSijPlPhZZwgE:0:0:Root:/: -Advanced Notes: `FS' and `IGNORECASE' -------------------------------------- + `FS' and `IGNORECASE' -The `IGNORECASE' variable (*note User-modified::) affects field + The `IGNORECASE' variable (*note User-modified::) affects field splitting _only_ when the value of `FS' is a regexp. It has no effect when `FS' is a single character, even if that character is a letter. Thus, in the following code: @@ -6385,14 +6376,13 @@ an `awk' program may have open to just one! In `gawk', there is no such limit. `gawk' allows a program to open as many pipelines as the underlying operating system permits. -Advanced Notes: Piping into `sh' --------------------------------- + Piping into `sh' -A particularly powerful way to use redirection is to build command lines -and pipe them into the shell, `sh'. For example, suppose you have a -list of files brought over from a system where all the file names are -stored in uppercase, and you wish to rename them to have names in all -lowercase. The following program is both simple and efficient: + A particularly powerful way to use redirection is to build command +lines and pipe them into the shell, `sh'. For example, suppose you +have a list of files brought over from a system where all the file names +are stored in uppercase, and you wish to rename them to have names in +all lowercase. The following program is both simple and efficient: { printf("mv %s %s\n", $0, tolower($0)) | "sh" } @@ -6670,10 +6660,9 @@ The second argument should be a string, with either of the values feature, a more complete discussion is delayed until *note Two-way I/O::, which discusses it in more detail and gives an example. -Advanced Notes: Using `close()''s Return Value ----------------------------------------------- + Using `close()''s Return Value -In many versions of Unix `awk', the `close()' function is actually a + In many versions of Unix `awk', the `close()' function is actually a statement. It is a syntax error to try and use the return value from `close()': (d.c.) @@ -6870,10 +6859,9 @@ octal constants; e.g., `gawk' treats `018' as decimal 18: If `gawk' is in compatibility mode (*note Options::), they are not available. -Advanced Notes: A Constant's Base Does Not Affect Its Value ------------------------------------------------------------ + A Constant's Base Does Not Affect Its Value -Once a numeric constant has been converted internally into a number, + Once a numeric constant has been converted internally into a number, `gawk' no longer remembers what the original form of the constant was; the internal value is always used. This has particular consequences for conversion of numbers to strings: @@ -7539,12 +7527,11 @@ Table 6.2: Arithmetic Assignment Operators NOTE: Only the `^=' operator is specified by POSIX. For maximum portability, do not use the `**=' operator. -Advanced Notes: Syntactic Ambiguities Between `/=' and Regular Expressions --------------------------------------------------------------------------- + Syntactic Ambiguities Between `/=' and Regular Expressions -There is a syntactic ambiguity between the `/=' assignment operator and -regexp constants whose first character is an `='. (d.c.) This is most -notable in some commercial `awk' versions. For example: + There is a syntactic ambiguity between the `/=' assignment operator +and regexp constants whose first character is an `='. (d.c.) This is +most notable in some commercial `awk' versions. For example: $ awk /==/ /dev/null error--> awk: syntax error at source line 1 @@ -7617,8 +7604,7 @@ is a summary of increment and decrement expressions: of the expression. (This expression is like `LVALUE++', but instead of adding, it subtracts.) -Advanced Notes: Operator Evaluation Order ------------------------------------------ + Operator Evaluation Order Doctor, doctor! It hurts when I do this! So don't do that! @@ -9925,14 +9911,13 @@ with a pound sign (`#'). neither `FUNCTAB' nor `SYMTAB' are available as elements within the `SYMTAB' array. -Advanced Notes: Changing `NR' and `FNR' ---------------------------------------- + Changing `NR' and `FNR' -`awk' increments `NR' and `FNR' each time it reads a record, instead of -setting them to the absolute value of the number of records read. This -means that a program can change these variables and their new values -are incremented for each record. (d.c.) The following example shows -this: + `awk' increments `NR' and `FNR' each time it reads a record, instead +of setting them to the absolute value of the number of records read. +This means that a program can change these variables and their new +values are incremented for each record. (d.c.) The following example +shows this: $ echo '1 > 2 @@ -11880,10 +11865,9 @@ Table 9.5: Escape Sequence Processing For `gensub()' and the special cases for `sub()' and `gsub()', we recommend the use of `gawk' and `gensub()' when you have to do substitutions. -Advanced Notes: Matching the Null String ----------------------------------------- + Matching the Null String -In `awk', the `*' operator can match the null string. This is + In `awk', the `*' operator can match the null string. This is particularly important for the `sub()', `gsub()', and `gensub()' functions. For example: @@ -12004,12 +11988,11 @@ parameters are enclosed in square brackets ([ ]): is disabled (*note Options::). -Advanced Notes: Interactive Versus Noninteractive Buffering ------------------------------------------------------------ + Interactive Versus Noninteractive Buffering -As a side point, buffering issues can be even more confusing, depending -upon whether your program is "interactive", i.e., communicating with a -user sitting at a keyboard.(1) + As a side point, buffering issues can be even more confusing, +depending upon whether your program is "interactive", i.e., +communicating with a user sitting at a keyboard.(1) Interactive programs generally "line buffer" their output; i.e., they write out every line. Noninteractive programs wait until they have a @@ -12036,13 +12019,13 @@ this example: Here, no output is printed until after the `Ctrl-d' is typed, because it is all buffered and sent down the pipe to `cat' in one shot. -Advanced Notes: Controlling Output Buffering with `system()' ------------------------------------------------------------- + Controlling Output Buffering with `system()' -The `fflush()' function provides explicit control over output buffering -for individual files and pipes. However, its use is not portable to -many older `awk' implementations. An alternative method to flush output -buffers is to call `system()' with a null string as its argument: + The `fflush()' function provides explicit control over output +buffering for individual files and pipes. However, its use is not +portable to many older `awk' implementations. An alternative method to +flush output buffers is to call `system()' with a null string as its +argument: system("") # flush output @@ -14222,12 +14205,11 @@ solves the problem: *note Wc Program::, shows how this library function can be used and how it simplifies writing the main program. -Advanced Notes: So Why Does `gawk' have `BEGINFILE' and `ENDFILE'? ------------------------------------------------------------------- + So Why Does `gawk' have `BEGINFILE' and `ENDFILE'? -You are probably wondering, if `beginfile()' and `endfile()' functions -can do the job, why does `gawk' have `BEGINFILE' and `ENDFILE' patterns -(*note BEGINFILE/ENDFILE::)? + You are probably wondering, if `beginfile()' and `endfile()' +functions can do the job, why does `gawk' have `BEGINFILE' and +`ENDFILE' patterns (*note BEGINFILE/ENDFILE::)? Good question. Normally, if `awk' cannot open a file, this causes an immediate fatal error. In this case, there is no way for a @@ -29271,7 +29253,7 @@ Index * * (asterisk), * operator, as regexp operator: Regexp Operators. (line 87) * * (asterisk), * operator, null strings, matching: Gory Details. - (line 165) + (line 164) * * (asterisk), ** operator <1>: Precedence. (line 49) * * (asterisk), ** operator: Arithmetic Ops. (line 81) * * (asterisk), **= operator <1>: Precedence. (line 95) @@ -29386,9 +29368,9 @@ Index * / (forward slash), /= operator <1>: Precedence. (line 95) * / (forward slash), /= operator: Assignment Ops. (line 129) * / (forward slash), /= operator, vs. /=.../ regexp constant: Assignment Ops. - (line 148) + (line 147) * / (forward slash), patterns and: Expression Patterns. (line 24) -* /= operator vs. /=.../ regexp constant: Assignment Ops. (line 148) +* /= operator vs. /=.../ regexp constant: Assignment Ops. (line 147) * /dev/... special files (gawk): Special FD. (line 46) * /dev/fd/N special files: Special FD. (line 46) * /inet/... special files (gawk): TCP/IP Networking. (line 6) @@ -29473,7 +29455,7 @@ Index * \ (backslash), in bracket expressions: Bracket Expressions. (line 17) * \ (backslash), in escape sequences: Escape Sequences. (line 6) * \ (backslash), in escape sequences, POSIX and: Escape Sequences. - (line 113) + (line 112) * \ (backslash), regexp constants: Computed Regexps. (line 28) * ^ (caret) <1>: GNU Regexp Operators. (line 59) @@ -29500,14 +29482,7 @@ Index * Ada programming language: Glossary. (line 20) * adding, features to gawk: Adding Code. (line 6) * adding, fields: Changing Fields. (line 53) -* advanced features, buffering: I/O Functions. (line 107) -* advanced features, close() function: Close Files And Pipes. - (line 131) -* advanced features, constants, values of: Nondecimal-numbers. - (line 67) -* advanced features, data files as single record: Records. (line 180) * advanced features, fixed-width data: Constant Size. (line 9) -* advanced features, FNR/NR variables: Auto-set. (line 301) * advanced features, gawk: Advanced Features. (line 6) * advanced features, gawk, network programming: TCP/IP Networking. (line 6) @@ -29517,10 +29492,6 @@ Index (line 23) * advanced features, network connections, See Also networks, connections: Advanced Features. (line 6) -* advanced features, null strings, matching: Gory Details. (line 165) -* advanced features, operators, precedence: Increment Ops. (line 61) -* advanced features, piping into sh: Redirection. (line 143) -* advanced features, regexp constants: Assignment Ops. (line 148) * advanced features, specifying field content: Splitting By Content. (line 9) * Aho, Alfred <1>: Contributors. (line 12) @@ -29532,7 +29503,7 @@ Index * amazing awk assembler (aaa): Glossary. (line 12) * amazingly workable formatter (awf): Glossary. (line 25) * ambiguity, syntactic: /= operator vs. /=.../ regexp constant: Assignment Ops. - (line 148) + (line 147) * ampersand (&), && operator <1>: Precedence. (line 86) * ampersand (&), && operator: Boolean Ops. (line 57) * ampersand (&), gsub()/gensub()/sub() functions and: Gory Details. @@ -29549,7 +29520,7 @@ Index * ARGC/ARGV variables: Auto-set. (line 11) * ARGC/ARGV variables, command-line arguments: Other Arguments. (line 12) -* ARGC/ARGV variables, portability and: Executable Scripts. (line 43) +* ARGC/ARGV variables, portability and: Executable Scripts. (line 42) * ARGIND variable: Auto-set. (line 40) * ARGIND variable, command-line arguments: Other Arguments. (line 12) * arguments, command-line <1>: ARGC and ARGV. (line 6) @@ -29611,7 +29582,7 @@ Index * asterisk (*), * operator, as regexp operator: Regexp Operators. (line 87) * asterisk (*), * operator, null strings, matching: Gory Details. - (line 165) + (line 164) * asterisk (*), ** operator <1>: Precedence. (line 49) * asterisk (*), ** operator: Arithmetic Ops. (line 81) * asterisk (*), **= operator <1>: Precedence. (line 95) @@ -29729,7 +29700,7 @@ Index * backslash (\), in bracket expressions: Bracket Expressions. (line 17) * backslash (\), in escape sequences: Escape Sequences. (line 6) * backslash (\), in escape sequences, POSIX and: Escape Sequences. - (line 113) + (line 112) * backslash (\), regexp constants: Computed Regexps. (line 28) * backtrace debugger command: Execution Stack. (line 13) * BBS-list file: Sample Data Files. (line 6) @@ -29813,8 +29784,8 @@ Index * Buening, Andreas <2>: Contributors. (line 92) * Buening, Andreas: Acknowledgments. (line 60) * buffering, input/output <1>: Two-way I/O. (line 70) -* buffering, input/output: I/O Functions. (line 139) -* buffering, interactive vs. noninteractive: I/O Functions. (line 107) +* buffering, input/output: I/O Functions. (line 137) +* buffering, interactive vs. noninteractive: I/O Functions. (line 106) * buffers, flushing: I/O Functions. (line 29) * buffers, operators for: GNU Regexp Operators. (line 48) @@ -29871,7 +29842,7 @@ Index * close() function: Getline/Variable/File. (line 30) * close() function, return values: Close Files And Pipes. - (line 131) + (line 130) * close() function, two-way pipes and: Two-way I/O. (line 77) * Close, Diane <1>: Contributors. (line 21) * Close, Diane: Manual History. (line 41) @@ -29993,7 +29964,7 @@ Index * d.c., See dark corner: Conventions. (line 38) * dark corner <1>: Glossary. (line 197) * dark corner <2>: Truth Values. (line 24) -* dark corner <3>: Assignment Ops. (line 148) +* dark corner <3>: Assignment Ops. (line 147) * dark corner: Conventions. (line 38) * dark corner, ^, in FS: Regexp Field Splitting. (line 59) @@ -30001,19 +29972,19 @@ Index (line 43) * dark corner, break statement: Break Statement. (line 51) * dark corner, close() function: Close Files And Pipes. - (line 131) + (line 130) * dark corner, command-line arguments: Assignment Options. (line 43) * dark corner, continue statement: Continue Statement. (line 43) * dark corner, CONVFMT variable: Conversion. (line 40) * dark corner, escape sequences: Other Arguments. (line 31) * dark corner, escape sequences, for metacharacters: Escape Sequences. - (line 136) + (line 134) * dark corner, exit statement: Exit Statement. (line 30) * dark corner, field separators: Field Splitting Summary. - (line 47) + (line 46) * dark corner, FILENAME variable <1>: Auto-set. (line 93) * dark corner, FILENAME variable: Getline Notes. (line 19) -* dark corner, FNR/NR variables: Auto-set. (line 301) +* dark corner, FNR/NR variables: Auto-set. (line 300) * dark corner, format-control characters: Control Letters. (line 18) * dark corner, FS as null string: Single Character Fields. (line 20) @@ -30026,11 +29997,11 @@ Index * dark corner, regexp constants: Using Constant Regexps. (line 6) * dark corner, regexp constants, /= operator and: Assignment Ops. - (line 148) + (line 147) * dark corner, regexp constants, as arguments to user-defined functions: Using Constant Regexps. (line 43) * dark corner, split() function: String Functions. (line 361) -* dark corner, strings, storing: Records. (line 196) +* dark corner, strings, storing: Records. (line 195) * dark corner, value of ARGV[0]: Auto-set. (line 35) * data, fixed-width: Constant Size. (line 9) * data-driven languages: Basic High Level. (line 85) @@ -30222,7 +30193,7 @@ Index * differences in awk and gawk, split() function: String Functions. (line 349) * differences in awk and gawk, strings: Scalar Constants. (line 20) -* differences in awk and gawk, strings, storing: Records. (line 192) +* differences in awk and gawk, strings, storing: Records. (line 191) * differences in awk and gawk, strtonum() function (gawk): String Functions. (line 404) * differences in awk and gawk, SYMTAB variable: Auto-set. (line 260) @@ -30309,7 +30280,7 @@ Index * ERRNO variable <2>: Auto-set. (line 73) * ERRNO variable <3>: BEGINFILE/ENDFILE. (line 26) * ERRNO variable <4>: Close Files And Pipes. - (line 139) + (line 138) * ERRNO variable: Getline. (line 19) * error handling: Special FD. (line 16) * error handling, ERRNO variable and: Auto-set. (line 73) @@ -30319,7 +30290,7 @@ Index * escape sequences: Escape Sequences. (line 6) * eval debugger command: Viewing And Changing Data. (line 23) -* evaluation order: Increment Ops. (line 61) +* evaluation order: Increment Ops. (line 60) * evaluation order, concatenation: Concatenation. (line 42) * evaluation order, functions: Calling Built-in. (line 30) * examining fields: Fields. (line 6) @@ -30398,7 +30369,7 @@ Index * field separators, on command line: Command Line Field Separator. (line 6) * field separators, POSIX and <1>: Field Splitting Summary. - (line 41) + (line 40) * field separators, POSIX and: Fields. (line 6) * field separators, regular expressions as <1>: Regexp Field Splitting. (line 6) @@ -30440,7 +30411,7 @@ Index * files, /inet/... (gawk): TCP/IP Networking. (line 6) * files, /inet4/... (gawk): TCP/IP Networking. (line 6) * files, /inet6/... (gawk): TCP/IP Networking. (line 6) -* files, as single records: Records. (line 201) +* files, as single records: Records. (line 200) * files, awk programs in: Long. (line 6) * files, awkprof.out: Profiling. (line 6) * files, awkvars.out: Options. (line 107) @@ -30491,7 +30462,7 @@ Index * floating-point, numbers: General Arithmetic. (line 6) * FNR variable <1>: Auto-set. (line 103) * FNR variable: Records. (line 6) -* FNR variable, changing: Auto-set. (line 301) +* FNR variable, changing: Auto-set. (line 300) * for statement: For Statement. (line 6) * for statement, in arrays: Scanning an Array. (line 20) * format specifiers, mixing regular with positional specifiers: Printf Ordering. @@ -30507,7 +30478,7 @@ Index * forward slash (/), /= operator <1>: Precedence. (line 95) * forward slash (/), /= operator: Assignment Ops. (line 129) * forward slash (/), /= operator, vs. /=.../ regexp constant: Assignment Ops. - (line 148) + (line 147) * forward slash (/), patterns and: Expression Patterns. (line 24) * FPAT variable <1>: User-modified. (line 45) * FPAT variable: Splitting By Content. @@ -30606,9 +30577,9 @@ Index * gawk, ERRNO variable in <2>: Auto-set. (line 73) * gawk, ERRNO variable in <3>: BEGINFILE/ENDFILE. (line 26) * gawk, ERRNO variable in <4>: Close Files And Pipes. - (line 139) + (line 138) * gawk, ERRNO variable in: Getline. (line 19) -* gawk, escape sequences: Escape Sequences. (line 125) +* gawk, escape sequences: Escape Sequences. (line 124) * gawk, extensions, disabling: Options. (line 247) * gawk, features, adding: Adding Code. (line 6) * gawk, features, advanced: Advanced Features. (line 6) @@ -30997,14 +30968,14 @@ Index * marked string extraction (internationalization): String Extraction. (line 6) * marked strings, extracting: String Extraction. (line 6) -* Marx, Groucho: Increment Ops. (line 61) +* Marx, Groucho: Increment Ops. (line 60) * match() function: String Functions. (line 206) * match() function, RSTART/RLENGTH variables: String Functions. (line 223) * matching, expressions, See comparison expressions: Typing and Comparison. (line 9) * matching, leftmost longest: Multiple Line. (line 26) -* matching, null strings: Gory Details. (line 165) +* matching, null strings: Gory Details. (line 164) * mawk program: Other Versions. (line 44) * McPhee, Patrick: Contributors. (line 100) * message object files: Explaining gettext. (line 41) @@ -31014,7 +30985,7 @@ Index (line 47) * message object files, specifying directory of: Explaining gettext. (line 53) -* metacharacters, escape sequences for: Escape Sequences. (line 132) +* metacharacters, escape sequences for: Escape Sequences. (line 130) * mktime() function (gawk): Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) * monetary information, localization: Explaining gettext. (line 103) @@ -31043,8 +31014,8 @@ Index * newlines, as field separators: Default Field Splitting. (line 6) * newlines, as record separators: Records. (line 20) -* newlines, in dynamic regexps: Computed Regexps. (line 59) -* newlines, in regexp constants: Computed Regexps. (line 69) +* newlines, in dynamic regexps: Computed Regexps. (line 58) +* newlines, in regexp constants: Computed Regexps. (line 68) * newlines, printing: Print Examples. (line 12) * newlines, separating statements in actions <1>: Statements. (line 10) * newlines, separating statements in actions: Action Overview. @@ -31075,7 +31046,7 @@ Index * not Boolean-logic operator: Boolean Ops. (line 6) * NR variable <1>: Auto-set. (line 125) * NR variable: Records. (line 6) -* NR variable, changing: Auto-set. (line 301) +* NR variable, changing: Auto-set. (line 300) * null strings <1>: Basic Data Typing. (line 26) * null strings <2>: Truth Values. (line 6) * null strings <3>: Regexp Field Splitting. @@ -31085,7 +31056,7 @@ Index * null strings, as array subscripts: Uninitialized Subscripts. (line 43) * null strings, converting numbers to strings: Conversion. (line 21) -* null strings, matching: Gory Details. (line 165) +* null strings, matching: Gory Details. (line 164) * null strings, quoting and: Quoting. (line 62) * number sign (#), #! (executable scripts): Executable Scripts. (line 6) @@ -31144,7 +31115,7 @@ Index * operators, input/output: Getline/File. (line 6) * operators, logical, See Boolean expressions: Boolean Ops. (line 6) * operators, precedence <1>: Precedence. (line 6) -* operators, precedence: Increment Ops. (line 61) +* operators, precedence: Increment Ops. (line 60) * operators, relational, See operators, comparison: Typing and Comparison. (line 9) * operators, short-circuit: Boolean Ops. (line 57) @@ -31233,16 +31204,16 @@ Index * plus sign (+), += operator: Assignment Ops. (line 82) * pointers to functions: Indirect Calls. (line 6) * portability: Escape Sequences. (line 94) -* portability, #! (executable scripts): Executable Scripts. (line 34) +* portability, #! (executable scripts): Executable Scripts. (line 33) * portability, ** operator and: Arithmetic Ops. (line 81) * portability, **= operator and: Assignment Ops. (line 142) -* portability, ARGV variable: Executable Scripts. (line 43) +* portability, ARGV variable: Executable Scripts. (line 42) * portability, backslash continuation and: Statements/Lines. (line 30) * portability, backslash in escape sequences: Escape Sequences. - (line 113) + (line 112) * portability, close() function and: Close Files And Pipes. (line 81) -* portability, data files as single record: Records. (line 180) +* portability, data files as single record: Records. (line 179) * portability, deleting array elements: Delete. (line 56) * portability, example programs: Library Functions. (line 42) * portability, fflush() function and: I/O Functions. (line 29) @@ -31255,7 +31226,7 @@ Index * portability, next statement in user-defined functions: Pass By Value/Reference. (line 91) * portability, NF variable, decrementing: Changing Fields. (line 115) -* portability, operators: Increment Ops. (line 61) +* portability, operators: Increment Ops. (line 60) * portability, operators, not in POSIX awk: Precedence. (line 98) * portability, POSIXLY_CORRECT environment variable: Options. (line 353) * portability, substr() function: String Functions. (line 512) @@ -31279,7 +31250,7 @@ Index * POSIX awk, < operator and: Getline/File. (line 26) * POSIX awk, arithmetic operators and: Arithmetic Ops. (line 36) * POSIX awk, backslashes in string constants: Escape Sequences. - (line 113) + (line 112) * POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 16) * POSIX awk, bracket expressions and: Bracket Expressions. (line 24) * POSIX awk, bracket expressions and, character classes: Bracket Expressions. @@ -31290,7 +31261,7 @@ Index * POSIX awk, CONVFMT variable and: User-modified. (line 28) * POSIX awk, date utility and: Time Functions. (line 262) * POSIX awk, field separators and <1>: Field Splitting Summary. - (line 41) + (line 40) * POSIX awk, field separators and: Fields. (line 6) * POSIX awk, FS variable and: User-modified. (line 66) * POSIX awk, function keyword in: Definition Syntax. (line 83) @@ -31315,7 +31286,7 @@ Index * PREC variable <1>: Setting Precision. (line 6) * PREC variable: User-modified. (line 134) * precedence <1>: Precedence. (line 6) -* precedence: Increment Ops. (line 61) +* precedence: Increment Ops. (line 60) * precedence, regexp operators: Regexp Operators. (line 156) * print debugger command: Viewing And Changing Data. (line 36) @@ -31433,7 +31404,7 @@ Index * records, printing: Print. (line 22) * records, splitting input into: Records. (line 6) * records, terminating: Records. (line 117) -* records, treating files as: Records. (line 201) +* records, treating files as: Records. (line 200) * recursive functions: Definition Syntax. (line 73) * redirection of input: Getline/File. (line 6) * redirection of output: Redirection. (line 6) @@ -31443,7 +31414,7 @@ Index (line 103) * regexp constants <2>: Regexp Constants. (line 6) * regexp constants: Regexp Usage. (line 57) -* regexp constants, /=.../, /= operator and: Assignment Ops. (line 148) +* regexp constants, /=.../, /= operator and: Assignment Ops. (line 147) * regexp constants, as patterns: Expression Patterns. (line 36) * regexp constants, in gawk: Using Constant Regexps. (line 28) @@ -31465,7 +31436,7 @@ Index (line 57) * regular expressions, dynamic: Computed Regexps. (line 6) * regular expressions, dynamic, with embedded newlines: Computed Regexps. - (line 59) + (line 58) * regular expressions, gawk, command-line options: GNU Regexp Operators. (line 70) * regular expressions, interval expressions and: Options. (line 272) @@ -31488,7 +31459,7 @@ Index (line 54) * return statement, user-defined functions: Return Statement. (line 6) * return values, close() function: Close Files And Pipes. - (line 131) + (line 130) * rev() user-defined function: Function Example. (line 52) * rewind() user-defined function: Rewind Function. (line 16) * right angle bracket (>), > operator <1>: Precedence. (line 65) @@ -31566,7 +31537,7 @@ Index * sed utility <1>: Glossary. (line 12) * sed utility <2>: Simple Sed. (line 6) * sed utility: Field Splitting Summary. - (line 47) + (line 46) * semicolon (;): Statements/Lines. (line 91) * semicolon (;), AWKPATH variable and: PC Using. (line 11) * semicolon (;), separating statements in actions <1>: Statements. @@ -31584,7 +31555,7 @@ Index * separators, subscript: User-modified. (line 156) * set debugger command: Viewing And Changing Data. (line 59) -* shells, piping commands into: Redirection. (line 143) +* shells, piping commands into: Redirection. (line 142) * shells, quoting: Using Shell Variables. (line 12) * shells, quoting, rules for: Quoting. (line 18) @@ -31608,6 +31579,36 @@ Index * side effects, FILENAME variable: Getline Notes. (line 19) * side effects, function calls: Function Calls. (line 54) * side effects, statements: Action Overview. (line 32) +* sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers. + (line 64) +* sidebar, Backslash Before Regular Characters: Escape Sequences. + (line 110) +* sidebar, Changing FS Does Not Affect the Fields: Field Splitting Summary. + (line 38) +* sidebar, Changing NR and FNR: Auto-set. (line 298) +* sidebar, Controlling Output Buffering with system(): I/O Functions. + (line 135) +* sidebar, Escape Sequences for Metacharacters: Escape Sequences. + (line 128) +* sidebar, FS and IGNORECASE: Field Splitting Summary. + (line 64) +* sidebar, Interactive Versus Noninteractive Buffering: I/O Functions. + (line 104) +* sidebar, Matching the Null String: Gory Details. (line 162) +* sidebar, Operator Evaluation Order: Increment Ops. (line 58) +* sidebar, Piping into sh: Redirection. (line 140) +* sidebar, Portability Issues with #!: Executable Scripts. (line 31) +* sidebar, Recipe For A Programming Language: History. (line 6) +* sidebar, RS = "\0" Is Not Portable: Records. (line 177) +* sidebar, So Why Does gawk have BEGINFILE and ENDFILE?: Filetrans Function. + (line 83) +* sidebar, Syntactic Ambiguities Between /= and Regular Expressions: Assignment Ops. + (line 145) +* sidebar, Understanding $0: Changing Fields. (line 134) +* sidebar, Using \n in Bracket Expressions of Dynamic Regexps: Computed Regexps. + (line 56) +* sidebar, Using close()'s Return Value: Close Files And Pipes. + (line 128) * SIGHUP signal: Profiling. (line 203) * SIGINT signal (MS-Windows): Profiling. (line 206) * signals, HUP/SIGHUP: Profiling. (line 203) @@ -31684,7 +31685,7 @@ Index (line 76) * stream editors <1>: Simple Sed. (line 6) * stream editors: Field Splitting Summary. - (line 47) + (line 46) * strftime() function (gawk): Time Functions. (line 48) * string constants: Scalar Constants. (line 15) * string constants, vs. regexp constants: Computed Regexps. (line 38) @@ -31728,7 +31729,7 @@ Index * switch statement: Switch Statement. (line 6) * SYMTAB array: Auto-set. (line 260) * syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops. - (line 148) + (line 147) * system() function: I/O Functions. (line 72) * systime() function (gawk): Time Functions. (line 65) * t debugger command (alias for tbreak): Breakpoint Control. (line 90) @@ -31789,7 +31790,7 @@ Index (line 37) * troubleshooting, awk uses FS not IFS: Field Separators. (line 29) * troubleshooting, backslash before nonspecial character: Escape Sequences. - (line 113) + (line 112) * troubleshooting, division: Arithmetic Ops. (line 44) * troubleshooting, fatal errors, field widths, specifying: Constant Size. (line 22) @@ -31842,9 +31843,9 @@ Index * uniq.awk program: Uniq Program. (line 65) * Unix: Glossary. (line 624) * Unix awk, backslashes in escape sequences: Escape Sequences. - (line 125) + (line 124) * Unix awk, close() function and: Close Files And Pipes. - (line 131) + (line 130) * Unix awk, password files, field separators and: Command Line Field Separator. (line 72) * Unix, awk scripts and: Executable Scripts. (line 6) @@ -31981,513 +31982,513 @@ Node: Preface44646 Ref: Preface-Footnote-147699 Ref: Preface-Footnote-247795 Node: History48027 -Node: Names50415 -Ref: Names-Footnote-151892 -Node: This Manual51964 -Ref: This Manual-Footnote-157870 -Node: Conventions57970 -Node: Manual History60122 -Ref: Manual History-Footnote-163523 -Ref: Manual History-Footnote-263564 -Node: How To Contribute63638 -Node: Acknowledgments64782 -Node: Getting Started68992 -Node: Running gawk71371 -Node: One-shot72557 -Node: Read Terminal73782 -Ref: Read Terminal-Footnote-175432 -Ref: Read Terminal-Footnote-275708 -Node: Long75879 -Node: Executable Scripts77255 -Ref: Executable Scripts-Footnote-179124 -Ref: Executable Scripts-Footnote-279226 -Node: Comments79773 -Node: Quoting82240 -Node: DOS Quoting86863 -Node: Sample Data Files87538 -Node: Very Simple90570 -Node: Two Rules95169 -Node: More Complex97316 -Ref: More Complex-Footnote-1100246 -Node: Statements/Lines100331 -Ref: Statements/Lines-Footnote-1104793 -Node: Other Features105058 -Node: When105986 -Node: Invoking Gawk108133 -Node: Command Line109594 -Node: Options110377 -Ref: Options-Footnote-1125769 -Node: Other Arguments125794 -Node: Naming Standard Input128452 -Node: Environment Variables129546 -Node: AWKPATH Variable130104 -Ref: AWKPATH Variable-Footnote-1132862 -Node: AWKLIBPATH Variable133122 -Node: Other Environment Variables133840 -Node: Exit Status136335 -Node: Include Files137010 -Node: Loading Shared Libraries140579 -Node: Obsolete141943 -Node: Undocumented142640 -Node: Regexp142883 -Node: Regexp Usage144272 -Node: Escape Sequences146298 -Node: Regexp Operators152061 -Ref: Regexp Operators-Footnote-1159441 -Ref: Regexp Operators-Footnote-2159588 -Node: Bracket Expressions159686 -Ref: table-char-classes161576 -Node: GNU Regexp Operators164099 -Node: Case-sensitivity167822 -Ref: Case-sensitivity-Footnote-1170790 -Ref: Case-sensitivity-Footnote-2171025 -Node: Leftmost Longest171133 -Node: Computed Regexps172334 -Node: Reading Files175744 -Node: Records177747 -Ref: Records-Footnote-1186671 -Node: Fields186708 -Ref: Fields-Footnote-1189741 -Node: Nonconstant Fields189827 -Node: Changing Fields192029 -Node: Field Separators198010 -Node: Default Field Splitting200639 -Node: Regexp Field Splitting201756 -Node: Single Character Fields205098 -Node: Command Line Field Separator206157 -Node: Field Splitting Summary209598 -Ref: Field Splitting Summary-Footnote-1212790 -Node: Constant Size212891 -Node: Splitting By Content217475 -Ref: Splitting By Content-Footnote-1221201 -Node: Multiple Line221241 -Ref: Multiple Line-Footnote-1227088 -Node: Getline227267 -Node: Plain Getline229483 -Node: Getline/Variable231572 -Node: Getline/File232713 -Node: Getline/Variable/File234035 -Ref: Getline/Variable/File-Footnote-1235634 -Node: Getline/Pipe235721 -Node: Getline/Variable/Pipe238407 -Node: Getline/Coprocess239514 -Node: Getline/Variable/Coprocess240757 -Node: Getline Notes241471 -Node: Getline Summary244258 -Ref: table-getline-variants244666 -Node: Read Timeout245524 -Ref: Read Timeout-Footnote-1249265 -Node: Command line directories249322 -Node: Printing249952 -Node: Print251583 -Node: Print Examples252920 -Node: Output Separators255704 -Node: OFMT257464 -Node: Printf258822 -Node: Basic Printf259728 -Node: Control Letters261267 -Node: Format Modifiers265079 -Node: Printf Examples271088 -Node: Redirection273803 -Node: Special Files280787 -Node: Special FD281320 -Ref: Special FD-Footnote-1284945 -Node: Special Network285019 -Node: Special Caveats285869 -Node: Close Files And Pipes286665 -Ref: Close Files And Pipes-Footnote-1293688 -Ref: Close Files And Pipes-Footnote-2293836 -Node: Expressions293986 -Node: Values295118 -Node: Constants295794 -Node: Scalar Constants296474 -Ref: Scalar Constants-Footnote-1297333 -Node: Nondecimal-numbers297515 -Node: Regexp Constants300574 -Node: Using Constant Regexps301049 -Node: Variables304104 -Node: Using Variables304759 -Node: Assignment Options306483 -Node: Conversion308355 -Ref: table-locale-affects313846 -Ref: Conversion-Footnote-1314470 -Node: All Operators314579 -Node: Arithmetic Ops315209 -Node: Concatenation317714 -Ref: Concatenation-Footnote-1320507 -Node: Assignment Ops320627 -Ref: table-assign-ops325615 -Node: Increment Ops327028 -Node: Truth Values and Conditions330498 -Node: Truth Values331581 -Node: Typing and Comparison332630 -Node: Variable Typing333419 -Ref: Variable Typing-Footnote-1337316 -Node: Comparison Operators337438 -Ref: table-relational-ops337848 -Node: POSIX String Comparison341397 -Ref: POSIX String Comparison-Footnote-1342353 -Node: Boolean Ops342491 -Ref: Boolean Ops-Footnote-1346569 -Node: Conditional Exp346660 -Node: Function Calls348392 -Node: Precedence351986 -Node: Locales355655 -Node: Patterns and Actions356744 -Node: Pattern Overview357798 -Node: Regexp Patterns359467 -Node: Expression Patterns360010 -Node: Ranges363695 -Node: BEGIN/END366661 -Node: Using BEGIN/END367423 -Ref: Using BEGIN/END-Footnote-1370154 -Node: I/O And BEGIN/END370260 -Node: BEGINFILE/ENDFILE372542 -Node: Empty375446 -Node: Using Shell Variables375762 -Node: Action Overview378047 -Node: Statements380404 -Node: If Statement382258 -Node: While Statement383757 -Node: Do Statement385801 -Node: For Statement386957 -Node: Switch Statement390109 -Node: Break Statement392206 -Node: Continue Statement394196 -Node: Next Statement395989 -Node: Nextfile Statement398379 -Node: Exit Statement401022 -Node: Built-in Variables403438 -Node: User-modified404533 -Ref: User-modified-Footnote-1412888 -Node: Auto-set412950 -Ref: Auto-set-Footnote-1425530 -Ref: Auto-set-Footnote-2425735 -Node: ARGC and ARGV425791 -Node: Arrays429642 -Node: Array Basics431147 -Node: Array Intro431973 -Node: Reference to Elements436291 -Node: Assigning Elements438561 -Node: Array Example439052 -Node: Scanning an Array440784 -Node: Controlling Scanning443098 -Ref: Controlling Scanning-Footnote-1448021 -Node: Delete448337 -Ref: Delete-Footnote-1451102 -Node: Numeric Array Subscripts451159 -Node: Uninitialized Subscripts453342 -Node: Multi-dimensional454970 -Node: Multi-scanning458064 -Node: Arrays of Arrays459655 -Node: Functions464296 -Node: Built-in465115 -Node: Calling Built-in466193 -Node: Numeric Functions468181 -Ref: Numeric Functions-Footnote-1472013 -Ref: Numeric Functions-Footnote-2472370 -Ref: Numeric Functions-Footnote-3472418 -Node: String Functions472687 -Ref: String Functions-Footnote-1496184 -Ref: String Functions-Footnote-2496313 -Ref: String Functions-Footnote-3496561 -Node: Gory Details496648 -Ref: table-sub-escapes498327 -Ref: table-sub-posix-92499681 -Ref: table-sub-proposed501032 -Ref: table-posix-sub502386 -Ref: table-gensub-escapes503931 -Ref: Gory Details-Footnote-1505138 -Ref: Gory Details-Footnote-2505189 -Node: I/O Functions505340 -Ref: I/O Functions-Footnote-1512445 -Node: Time Functions512592 -Ref: Time Functions-Footnote-1523525 -Ref: Time Functions-Footnote-2523593 -Ref: Time Functions-Footnote-3523751 -Ref: Time Functions-Footnote-4523862 -Ref: Time Functions-Footnote-5523974 -Ref: Time Functions-Footnote-6524201 -Node: Bitwise Functions524467 -Ref: table-bitwise-ops525025 -Ref: Bitwise Functions-Footnote-1529246 -Node: Type Functions529430 -Node: I18N Functions529900 -Node: User-defined531527 -Node: Definition Syntax532331 -Ref: Definition Syntax-Footnote-1537241 -Node: Function Example537310 -Node: Function Caveats539904 -Node: Calling A Function540325 -Node: Variable Scope541440 -Node: Pass By Value/Reference544403 -Node: Return Statement547911 -Node: Dynamic Typing550892 -Node: Indirect Calls551823 -Node: Library Functions561508 -Ref: Library Functions-Footnote-1565021 -Ref: Library Functions-Footnote-2565164 -Node: Library Names565335 -Ref: Library Names-Footnote-1568806 -Ref: Library Names-Footnote-2569026 -Node: General Functions569112 -Node: Strtonum Function570065 -Node: Assert Function572995 -Node: Round Function576321 -Node: Cliff Random Function577864 -Node: Ordinal Functions578880 -Ref: Ordinal Functions-Footnote-1581950 -Ref: Ordinal Functions-Footnote-2582202 -Node: Join Function582411 -Ref: Join Function-Footnote-1584182 -Node: Getlocaltime Function584382 -Node: Data File Management588097 -Node: Filetrans Function588729 -Node: Rewind Function592868 -Node: File Checking594255 -Node: Empty Files595349 -Node: Ignoring Assigns597579 -Node: Getopt Function599132 -Ref: Getopt Function-Footnote-1610436 -Node: Passwd Functions610639 -Ref: Passwd Functions-Footnote-1619614 -Node: Group Functions619702 -Node: Walking Arrays627786 -Node: Sample Programs629923 -Node: Running Examples630597 -Node: Clones631325 -Node: Cut Program632549 -Node: Egrep Program642394 -Ref: Egrep Program-Footnote-1650167 -Node: Id Program650277 -Node: Split Program653893 -Ref: Split Program-Footnote-1657412 -Node: Tee Program657540 -Node: Uniq Program660343 -Node: Wc Program667772 -Ref: Wc Program-Footnote-1672038 -Ref: Wc Program-Footnote-2672238 -Node: Miscellaneous Programs672330 -Node: Dupword Program673518 -Node: Alarm Program675549 -Node: Translate Program680298 -Ref: Translate Program-Footnote-1684685 -Ref: Translate Program-Footnote-2684913 -Node: Labels Program685047 -Ref: Labels Program-Footnote-1688418 -Node: Word Sorting688502 -Node: History Sorting692386 -Node: Extract Program694225 -Ref: Extract Program-Footnote-1701726 -Node: Simple Sed701854 -Node: Igawk Program704916 -Ref: Igawk Program-Footnote-1720073 -Ref: Igawk Program-Footnote-2720274 -Node: Anagram Program720412 -Node: Signature Program723480 -Node: Advanced Features724580 -Node: Nondecimal Data726462 -Node: Array Sorting728045 -Node: Controlling Array Traversal728742 -Node: Array Sorting Functions736980 -Ref: Array Sorting Functions-Footnote-1740654 -Ref: Array Sorting Functions-Footnote-2740747 -Node: Two-way I/O740941 -Ref: Two-way I/O-Footnote-1746373 -Node: TCP/IP Networking746443 -Node: Profiling749287 -Node: Internationalization756742 -Node: I18N and L10N758167 -Node: Explaining gettext758853 -Ref: Explaining gettext-Footnote-1763919 -Ref: Explaining gettext-Footnote-2764103 -Node: Programmer i18n764268 -Node: Translator i18n768468 -Node: String Extraction769261 -Ref: String Extraction-Footnote-1770222 -Node: Printf Ordering770308 -Ref: Printf Ordering-Footnote-1773092 -Node: I18N Portability773156 -Ref: I18N Portability-Footnote-1775605 -Node: I18N Example775668 -Ref: I18N Example-Footnote-1778303 -Node: Gawk I18N778375 -Node: Debugger778996 -Node: Debugging779967 -Node: Debugging Concepts780400 -Node: Debugging Terms782256 -Node: Awk Debugging784853 -Node: Sample Debugging Session785745 -Node: Debugger Invocation786265 -Node: Finding The Bug787597 -Node: List of Debugger Commands794085 -Node: Breakpoint Control795419 -Node: Debugger Execution Control799083 -Node: Viewing And Changing Data802443 -Node: Execution Stack805799 -Node: Debugger Info807266 -Node: Miscellaneous Debugger Commands811248 -Node: Readline Support816424 -Node: Limitations817255 -Node: Arbitrary Precision Arithmetic819507 -Ref: Arbitrary Precision Arithmetic-Footnote-1821158 -Node: General Arithmetic821306 -Node: Floating Point Issues823026 -Node: String Conversion Precision823907 -Ref: String Conversion Precision-Footnote-1825613 -Node: Unexpected Results825722 -Node: POSIX Floating Point Problems827875 -Ref: POSIX Floating Point Problems-Footnote-1831700 -Node: Integer Programming831738 -Node: Floating-point Programming833491 -Ref: Floating-point Programming-Footnote-1839800 -Node: Floating-point Representation840064 -Node: Floating-point Context841229 -Ref: table-ieee-formats842071 -Node: Rounding Mode843455 -Ref: table-rounding-modes843934 -Ref: Rounding Mode-Footnote-1846938 -Node: Gawk and MPFR847119 -Node: Arbitrary Precision Floats848361 -Ref: Arbitrary Precision Floats-Footnote-1850790 -Node: Setting Precision851101 -Node: Setting Rounding Mode853834 -Ref: table-gawk-rounding-modes854238 -Node: Floating-point Constants855418 -Node: Changing Precision856842 -Ref: Changing Precision-Footnote-1858242 -Node: Exact Arithmetic858416 -Node: Arbitrary Precision Integers861524 -Ref: Arbitrary Precision Integers-Footnote-1864524 -Node: Dynamic Extensions864671 -Node: Extension Intro866048 -Node: Plugin License867256 -Node: Extension Mechanism Outline867941 -Ref: load-extension868358 -Ref: load-new-function869836 -Ref: call-new-function870831 -Node: Extension API Description872839 -Node: Extension API Functions Introduction874178 -Node: General Data Types878956 -Ref: General Data Types-Footnote-1884558 -Node: Requesting Values884857 -Ref: table-value-types-returned885588 -Node: Constructor Functions886542 -Node: Registration Functions889538 -Node: Extension Functions890223 -Node: Exit Callback Functions892397 -Node: Extension Version String893640 -Node: Input Parsers894290 -Node: Output Wrappers904007 -Node: Two-way processors908423 -Node: Printing Messages910553 -Ref: Printing Messages-Footnote-1911630 -Node: Updating `ERRNO'911782 -Node: Accessing Parameters912521 -Node: Symbol Table Access913751 -Node: Symbol table by name914263 -Node: Symbol table by cookie915836 -Ref: Symbol table by cookie-Footnote-1919965 -Node: Cached values920028 -Ref: Cached values-Footnote-1923471 -Node: Array Manipulation923562 -Ref: Array Manipulation-Footnote-1924660 -Node: Array Data Types924699 -Ref: Array Data Types-Footnote-1927402 -Node: Array Functions927494 -Node: Flattening Arrays931260 -Node: Creating Arrays938099 -Node: Extension API Variables942894 -Node: Extension Versioning943530 -Node: Extension API Informational Variables945431 -Node: Extension API Boilerplate946517 -Node: Finding Extensions950348 -Node: Extension Example950895 -Node: Internal File Description951633 -Node: Internal File Ops955321 -Ref: Internal File Ops-Footnote-1966768 -Node: Using Internal File Ops966908 -Ref: Using Internal File Ops-Footnote-1969261 -Node: Extension Samples969527 -Node: Extension Sample File Functions971051 -Node: Extension Sample Fnmatch979524 -Node: Extension Sample Fork981250 -Node: Extension Sample Inplace982468 -Node: Extension Sample Ord984246 -Node: Extension Sample Readdir985025 -Node: Extension Sample Revout986529 -Node: Extension Sample Rev2way987122 -Node: Extension Sample Read write array987812 -Node: Extension Sample Readfile989695 -Node: Extension Sample API Tests990452 -Node: Extension Sample Time990977 -Node: gawkextlib992284 -Node: Language History994665 -Node: V7/SVR3.1996187 -Node: SVR4998508 -Node: POSIX999950 -Node: BTL1001336 -Node: POSIX/GNU1002070 -Node: Common Extensions1007605 -Node: Ranges and Locales1008760 -Ref: Ranges and Locales-Footnote-11013378 -Ref: Ranges and Locales-Footnote-21013405 -Ref: Ranges and Locales-Footnote-31013665 -Node: Contributors1013886 -Node: Installation1018690 -Node: Gawk Distribution1019584 -Node: Getting1020068 -Node: Extracting1020894 -Node: Distribution contents1022586 -Node: Unix Installation1027847 -Node: Quick Installation1028464 -Node: Additional Configuration Options1030426 -Node: Configuration Philosophy1031903 -Node: Non-Unix Installation1034245 -Node: PC Installation1034703 -Node: PC Binary Installation1036002 -Node: PC Compiling1037850 -Node: PC Testing1040794 -Node: PC Using1041970 -Node: Cygwin1046155 -Node: MSYS1047155 -Node: VMS Installation1047669 -Node: VMS Compilation1048272 -Ref: VMS Compilation-Footnote-11049279 -Node: VMS Installation Details1049337 -Node: VMS Running1050972 -Node: VMS Old Gawk1052579 -Node: Bugs1053053 -Node: Other Versions1056905 -Node: Notes1062506 -Node: Compatibility Mode1063306 -Node: Additions1064089 -Node: Accessing The Source1065016 -Node: Adding Code1066456 -Node: New Ports1072501 -Node: Derived Files1076636 -Ref: Derived Files-Footnote-11081957 -Ref: Derived Files-Footnote-21081991 -Ref: Derived Files-Footnote-31082591 -Node: Future Extensions1082689 -Node: Implementation Limitations1083270 -Node: Extension Design1084522 -Node: Old Extension Problems1085671 -Ref: Old Extension Problems-Footnote-11087179 -Node: Extension New Mechanism Goals1087236 -Ref: Extension New Mechanism Goals-Footnote-11090595 -Node: Extension Other Design Decisions1090781 -Node: Extension Future Growth1092887 -Node: Old Extension Mechansim1093708 -Node: Basic Concepts1095447 -Node: Basic High Level1096128 -Ref: figure-general-flow1096399 -Ref: figure-process-flow1096998 -Ref: Basic High Level-Footnote-11100227 -Node: Basic Data Typing1100412 -Node: Glossary1103767 -Node: Copying1129238 -Node: GNU Free Documentation License1166795 -Node: Index1191932 +Node: Names50401 +Ref: Names-Footnote-151878 +Node: This Manual51950 +Ref: This Manual-Footnote-157815 +Node: Conventions57915 +Node: Manual History60067 +Ref: Manual History-Footnote-163468 +Ref: Manual History-Footnote-263509 +Node: How To Contribute63583 +Node: Acknowledgments64727 +Node: Getting Started68937 +Node: Running gawk71316 +Node: One-shot72502 +Node: Read Terminal73727 +Ref: Read Terminal-Footnote-175377 +Ref: Read Terminal-Footnote-275653 +Node: Long75824 +Node: Executable Scripts77200 +Ref: Executable Scripts-Footnote-179033 +Ref: Executable Scripts-Footnote-279135 +Node: Comments79682 +Node: Quoting82149 +Node: DOS Quoting86772 +Node: Sample Data Files87447 +Node: Very Simple90479 +Node: Two Rules95078 +Node: More Complex97225 +Ref: More Complex-Footnote-1100155 +Node: Statements/Lines100240 +Ref: Statements/Lines-Footnote-1104702 +Node: Other Features104967 +Node: When105895 +Node: Invoking Gawk108042 +Node: Command Line109503 +Node: Options110286 +Ref: Options-Footnote-1125678 +Node: Other Arguments125703 +Node: Naming Standard Input128361 +Node: Environment Variables129455 +Node: AWKPATH Variable130013 +Ref: AWKPATH Variable-Footnote-1132771 +Node: AWKLIBPATH Variable133031 +Node: Other Environment Variables133749 +Node: Exit Status136244 +Node: Include Files136919 +Node: Loading Shared Libraries140488 +Node: Obsolete141852 +Node: Undocumented142549 +Node: Regexp142792 +Node: Regexp Usage144181 +Node: Escape Sequences146207 +Node: Regexp Operators151876 +Ref: Regexp Operators-Footnote-1159256 +Ref: Regexp Operators-Footnote-2159403 +Node: Bracket Expressions159501 +Ref: table-char-classes161391 +Node: GNU Regexp Operators163914 +Node: Case-sensitivity167637 +Ref: Case-sensitivity-Footnote-1170605 +Ref: Case-sensitivity-Footnote-2170840 +Node: Leftmost Longest170948 +Node: Computed Regexps172149 +Node: Reading Files175486 +Node: Records177489 +Ref: Records-Footnote-1186378 +Node: Fields186415 +Ref: Fields-Footnote-1189448 +Node: Nonconstant Fields189534 +Node: Changing Fields191736 +Node: Field Separators197695 +Node: Default Field Splitting200324 +Node: Regexp Field Splitting201441 +Node: Single Character Fields204783 +Node: Command Line Field Separator205842 +Node: Field Splitting Summary209283 +Ref: Field Splitting Summary-Footnote-1212394 +Node: Constant Size212495 +Node: Splitting By Content217079 +Ref: Splitting By Content-Footnote-1220805 +Node: Multiple Line220845 +Ref: Multiple Line-Footnote-1226692 +Node: Getline226871 +Node: Plain Getline229087 +Node: Getline/Variable231176 +Node: Getline/File232317 +Node: Getline/Variable/File233639 +Ref: Getline/Variable/File-Footnote-1235238 +Node: Getline/Pipe235325 +Node: Getline/Variable/Pipe238011 +Node: Getline/Coprocess239118 +Node: Getline/Variable/Coprocess240361 +Node: Getline Notes241075 +Node: Getline Summary243862 +Ref: table-getline-variants244270 +Node: Read Timeout245128 +Ref: Read Timeout-Footnote-1248869 +Node: Command line directories248926 +Node: Printing249556 +Node: Print251187 +Node: Print Examples252524 +Node: Output Separators255308 +Node: OFMT257068 +Node: Printf258426 +Node: Basic Printf259332 +Node: Control Letters260871 +Node: Format Modifiers264683 +Node: Printf Examples270692 +Node: Redirection273407 +Node: Special Files280372 +Node: Special FD280905 +Ref: Special FD-Footnote-1284530 +Node: Special Network284604 +Node: Special Caveats285454 +Node: Close Files And Pipes286250 +Ref: Close Files And Pipes-Footnote-1293233 +Ref: Close Files And Pipes-Footnote-2293381 +Node: Expressions293531 +Node: Values294663 +Node: Constants295339 +Node: Scalar Constants296019 +Ref: Scalar Constants-Footnote-1296878 +Node: Nondecimal-numbers297060 +Node: Regexp Constants300060 +Node: Using Constant Regexps300535 +Node: Variables303590 +Node: Using Variables304245 +Node: Assignment Options305969 +Node: Conversion307841 +Ref: table-locale-affects313332 +Ref: Conversion-Footnote-1313956 +Node: All Operators314065 +Node: Arithmetic Ops314695 +Node: Concatenation317200 +Ref: Concatenation-Footnote-1319993 +Node: Assignment Ops320113 +Ref: table-assign-ops325101 +Node: Increment Ops326432 +Node: Truth Values and Conditions329867 +Node: Truth Values330950 +Node: Typing and Comparison331999 +Node: Variable Typing332788 +Ref: Variable Typing-Footnote-1336685 +Node: Comparison Operators336807 +Ref: table-relational-ops337217 +Node: POSIX String Comparison340766 +Ref: POSIX String Comparison-Footnote-1341722 +Node: Boolean Ops341860 +Ref: Boolean Ops-Footnote-1345938 +Node: Conditional Exp346029 +Node: Function Calls347761 +Node: Precedence351355 +Node: Locales355024 +Node: Patterns and Actions356113 +Node: Pattern Overview357167 +Node: Regexp Patterns358836 +Node: Expression Patterns359379 +Node: Ranges363064 +Node: BEGIN/END366030 +Node: Using BEGIN/END366792 +Ref: Using BEGIN/END-Footnote-1369523 +Node: I/O And BEGIN/END369629 +Node: BEGINFILE/ENDFILE371911 +Node: Empty374815 +Node: Using Shell Variables375131 +Node: Action Overview377416 +Node: Statements379773 +Node: If Statement381627 +Node: While Statement383126 +Node: Do Statement385170 +Node: For Statement386326 +Node: Switch Statement389478 +Node: Break Statement391575 +Node: Continue Statement393565 +Node: Next Statement395358 +Node: Nextfile Statement397748 +Node: Exit Statement400391 +Node: Built-in Variables402807 +Node: User-modified403902 +Ref: User-modified-Footnote-1412257 +Node: Auto-set412319 +Ref: Auto-set-Footnote-1424869 +Ref: Auto-set-Footnote-2425074 +Node: ARGC and ARGV425130 +Node: Arrays428981 +Node: Array Basics430486 +Node: Array Intro431312 +Node: Reference to Elements435630 +Node: Assigning Elements437900 +Node: Array Example438391 +Node: Scanning an Array440123 +Node: Controlling Scanning442437 +Ref: Controlling Scanning-Footnote-1447360 +Node: Delete447676 +Ref: Delete-Footnote-1450441 +Node: Numeric Array Subscripts450498 +Node: Uninitialized Subscripts452681 +Node: Multi-dimensional454309 +Node: Multi-scanning457403 +Node: Arrays of Arrays458994 +Node: Functions463635 +Node: Built-in464454 +Node: Calling Built-in465532 +Node: Numeric Functions467520 +Ref: Numeric Functions-Footnote-1471352 +Ref: Numeric Functions-Footnote-2471709 +Ref: Numeric Functions-Footnote-3471757 +Node: String Functions472026 +Ref: String Functions-Footnote-1495523 +Ref: String Functions-Footnote-2495652 +Ref: String Functions-Footnote-3495900 +Node: Gory Details495987 +Ref: table-sub-escapes497666 +Ref: table-sub-posix-92499020 +Ref: table-sub-proposed500371 +Ref: table-posix-sub501725 +Ref: table-gensub-escapes503270 +Ref: Gory Details-Footnote-1504446 +Ref: Gory Details-Footnote-2504497 +Node: I/O Functions504648 +Ref: I/O Functions-Footnote-1511633 +Node: Time Functions511780 +Ref: Time Functions-Footnote-1522713 +Ref: Time Functions-Footnote-2522781 +Ref: Time Functions-Footnote-3522939 +Ref: Time Functions-Footnote-4523050 +Ref: Time Functions-Footnote-5523162 +Ref: Time Functions-Footnote-6523389 +Node: Bitwise Functions523655 +Ref: table-bitwise-ops524213 +Ref: Bitwise Functions-Footnote-1528434 +Node: Type Functions528618 +Node: I18N Functions529088 +Node: User-defined530715 +Node: Definition Syntax531519 +Ref: Definition Syntax-Footnote-1536429 +Node: Function Example536498 +Node: Function Caveats539092 +Node: Calling A Function539513 +Node: Variable Scope540628 +Node: Pass By Value/Reference543591 +Node: Return Statement547099 +Node: Dynamic Typing550080 +Node: Indirect Calls551011 +Node: Library Functions560696 +Ref: Library Functions-Footnote-1564209 +Ref: Library Functions-Footnote-2564352 +Node: Library Names564523 +Ref: Library Names-Footnote-1567994 +Ref: Library Names-Footnote-2568214 +Node: General Functions568300 +Node: Strtonum Function569253 +Node: Assert Function572183 +Node: Round Function575509 +Node: Cliff Random Function577052 +Node: Ordinal Functions578068 +Ref: Ordinal Functions-Footnote-1581138 +Ref: Ordinal Functions-Footnote-2581390 +Node: Join Function581599 +Ref: Join Function-Footnote-1583370 +Node: Getlocaltime Function583570 +Node: Data File Management587285 +Node: Filetrans Function587917 +Node: Rewind Function591986 +Node: File Checking593373 +Node: Empty Files594467 +Node: Ignoring Assigns596697 +Node: Getopt Function598250 +Ref: Getopt Function-Footnote-1609554 +Node: Passwd Functions609757 +Ref: Passwd Functions-Footnote-1618732 +Node: Group Functions618820 +Node: Walking Arrays626904 +Node: Sample Programs629041 +Node: Running Examples629715 +Node: Clones630443 +Node: Cut Program631667 +Node: Egrep Program641512 +Ref: Egrep Program-Footnote-1649285 +Node: Id Program649395 +Node: Split Program653011 +Ref: Split Program-Footnote-1656530 +Node: Tee Program656658 +Node: Uniq Program659461 +Node: Wc Program666890 +Ref: Wc Program-Footnote-1671156 +Ref: Wc Program-Footnote-2671356 +Node: Miscellaneous Programs671448 +Node: Dupword Program672636 +Node: Alarm Program674667 +Node: Translate Program679416 +Ref: Translate Program-Footnote-1683803 +Ref: Translate Program-Footnote-2684031 +Node: Labels Program684165 +Ref: Labels Program-Footnote-1687536 +Node: Word Sorting687620 +Node: History Sorting691504 +Node: Extract Program693343 +Ref: Extract Program-Footnote-1700844 +Node: Simple Sed700972 +Node: Igawk Program704034 +Ref: Igawk Program-Footnote-1719191 +Ref: Igawk Program-Footnote-2719392 +Node: Anagram Program719530 +Node: Signature Program722598 +Node: Advanced Features723698 +Node: Nondecimal Data725580 +Node: Array Sorting727163 +Node: Controlling Array Traversal727860 +Node: Array Sorting Functions736098 +Ref: Array Sorting Functions-Footnote-1739772 +Ref: Array Sorting Functions-Footnote-2739865 +Node: Two-way I/O740059 +Ref: Two-way I/O-Footnote-1745491 +Node: TCP/IP Networking745561 +Node: Profiling748405 +Node: Internationalization755860 +Node: I18N and L10N757285 +Node: Explaining gettext757971 +Ref: Explaining gettext-Footnote-1763037 +Ref: Explaining gettext-Footnote-2763221 +Node: Programmer i18n763386 +Node: Translator i18n767586 +Node: String Extraction768379 +Ref: String Extraction-Footnote-1769340 +Node: Printf Ordering769426 +Ref: Printf Ordering-Footnote-1772210 +Node: I18N Portability772274 +Ref: I18N Portability-Footnote-1774723 +Node: I18N Example774786 +Ref: I18N Example-Footnote-1777421 +Node: Gawk I18N777493 +Node: Debugger778114 +Node: Debugging779085 +Node: Debugging Concepts779518 +Node: Debugging Terms781374 +Node: Awk Debugging783971 +Node: Sample Debugging Session784863 +Node: Debugger Invocation785383 +Node: Finding The Bug786715 +Node: List of Debugger Commands793203 +Node: Breakpoint Control794537 +Node: Debugger Execution Control798201 +Node: Viewing And Changing Data801561 +Node: Execution Stack804917 +Node: Debugger Info806384 +Node: Miscellaneous Debugger Commands810366 +Node: Readline Support815542 +Node: Limitations816373 +Node: Arbitrary Precision Arithmetic818625 +Ref: Arbitrary Precision Arithmetic-Footnote-1820276 +Node: General Arithmetic820424 +Node: Floating Point Issues822144 +Node: String Conversion Precision823025 +Ref: String Conversion Precision-Footnote-1824731 +Node: Unexpected Results824840 +Node: POSIX Floating Point Problems826993 +Ref: POSIX Floating Point Problems-Footnote-1830818 +Node: Integer Programming830856 +Node: Floating-point Programming832609 +Ref: Floating-point Programming-Footnote-1838918 +Node: Floating-point Representation839182 +Node: Floating-point Context840347 +Ref: table-ieee-formats841189 +Node: Rounding Mode842573 +Ref: table-rounding-modes843052 +Ref: Rounding Mode-Footnote-1846056 +Node: Gawk and MPFR846237 +Node: Arbitrary Precision Floats847479 +Ref: Arbitrary Precision Floats-Footnote-1849908 +Node: Setting Precision850219 +Node: Setting Rounding Mode852952 +Ref: table-gawk-rounding-modes853356 +Node: Floating-point Constants854536 +Node: Changing Precision855960 +Ref: Changing Precision-Footnote-1857360 +Node: Exact Arithmetic857534 +Node: Arbitrary Precision Integers860642 +Ref: Arbitrary Precision Integers-Footnote-1863642 +Node: Dynamic Extensions863789 +Node: Extension Intro865166 +Node: Plugin License866374 +Node: Extension Mechanism Outline867059 +Ref: load-extension867476 +Ref: load-new-function868954 +Ref: call-new-function869949 +Node: Extension API Description871957 +Node: Extension API Functions Introduction873296 +Node: General Data Types878074 +Ref: General Data Types-Footnote-1883676 +Node: Requesting Values883975 +Ref: table-value-types-returned884706 +Node: Constructor Functions885660 +Node: Registration Functions888656 +Node: Extension Functions889341 +Node: Exit Callback Functions891515 +Node: Extension Version String892758 +Node: Input Parsers893408 +Node: Output Wrappers903125 +Node: Two-way processors907541 +Node: Printing Messages909671 +Ref: Printing Messages-Footnote-1910748 +Node: Updating `ERRNO'910900 +Node: Accessing Parameters911639 +Node: Symbol Table Access912869 +Node: Symbol table by name913381 +Node: Symbol table by cookie914954 +Ref: Symbol table by cookie-Footnote-1919083 +Node: Cached values919146 +Ref: Cached values-Footnote-1922589 +Node: Array Manipulation922680 +Ref: Array Manipulation-Footnote-1923778 +Node: Array Data Types923817 +Ref: Array Data Types-Footnote-1926520 +Node: Array Functions926612 +Node: Flattening Arrays930378 +Node: Creating Arrays937217 +Node: Extension API Variables942012 +Node: Extension Versioning942648 +Node: Extension API Informational Variables944549 +Node: Extension API Boilerplate945635 +Node: Finding Extensions949466 +Node: Extension Example950013 +Node: Internal File Description950751 +Node: Internal File Ops954439 +Ref: Internal File Ops-Footnote-1965886 +Node: Using Internal File Ops966026 +Ref: Using Internal File Ops-Footnote-1968379 +Node: Extension Samples968645 +Node: Extension Sample File Functions970169 +Node: Extension Sample Fnmatch978642 +Node: Extension Sample Fork980368 +Node: Extension Sample Inplace981586 +Node: Extension Sample Ord983364 +Node: Extension Sample Readdir984143 +Node: Extension Sample Revout985647 +Node: Extension Sample Rev2way986240 +Node: Extension Sample Read write array986930 +Node: Extension Sample Readfile988813 +Node: Extension Sample API Tests989570 +Node: Extension Sample Time990095 +Node: gawkextlib991402 +Node: Language History993783 +Node: V7/SVR3.1995305 +Node: SVR4997626 +Node: POSIX999068 +Node: BTL1000454 +Node: POSIX/GNU1001188 +Node: Common Extensions1006723 +Node: Ranges and Locales1007878 +Ref: Ranges and Locales-Footnote-11012496 +Ref: Ranges and Locales-Footnote-21012523 +Ref: Ranges and Locales-Footnote-31012783 +Node: Contributors1013004 +Node: Installation1017808 +Node: Gawk Distribution1018702 +Node: Getting1019186 +Node: Extracting1020012 +Node: Distribution contents1021704 +Node: Unix Installation1026965 +Node: Quick Installation1027582 +Node: Additional Configuration Options1029544 +Node: Configuration Philosophy1031021 +Node: Non-Unix Installation1033363 +Node: PC Installation1033821 +Node: PC Binary Installation1035120 +Node: PC Compiling1036968 +Node: PC Testing1039912 +Node: PC Using1041088 +Node: Cygwin1045273 +Node: MSYS1046273 +Node: VMS Installation1046787 +Node: VMS Compilation1047390 +Ref: VMS Compilation-Footnote-11048397 +Node: VMS Installation Details1048455 +Node: VMS Running1050090 +Node: VMS Old Gawk1051697 +Node: Bugs1052171 +Node: Other Versions1056023 +Node: Notes1061624 +Node: Compatibility Mode1062424 +Node: Additions1063207 +Node: Accessing The Source1064134 +Node: Adding Code1065574 +Node: New Ports1071619 +Node: Derived Files1075754 +Ref: Derived Files-Footnote-11081075 +Ref: Derived Files-Footnote-21081109 +Ref: Derived Files-Footnote-31081709 +Node: Future Extensions1081807 +Node: Implementation Limitations1082388 +Node: Extension Design1083640 +Node: Old Extension Problems1084789 +Ref: Old Extension Problems-Footnote-11086297 +Node: Extension New Mechanism Goals1086354 +Ref: Extension New Mechanism Goals-Footnote-11089713 +Node: Extension Other Design Decisions1089899 +Node: Extension Future Growth1092005 +Node: Old Extension Mechansim1092826 +Node: Basic Concepts1094565 +Node: Basic High Level1095246 +Ref: figure-general-flow1095517 +Ref: figure-process-flow1096116 +Ref: Basic High Level-Footnote-11099345 +Node: Basic Data Typing1099530 +Node: Glossary1102885 +Node: Copying1128356 +Node: GNU Free Documentation License1165913 +Node: Index1191050 End Tag Table |