diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1394 |
1 files changed, 705 insertions, 689 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 038e9a83..a3195bb5 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -769,12 +769,10 @@ Preface Several kinds of tasks occur repeatedly when working with text files. You might want to extract certain lines and discard the rest. Or you -may need to make changes wherever certain patterns appear, but leave -the rest of the file alone. Writing single-use programs for these -tasks in languages such as C, C++, or Java is time-consuming and -inconvenient. Such jobs are often easier with `awk'. The `awk' -utility interprets a special-purpose programming language that makes it -easy to handle simple data-reformatting jobs. +may need to make changes wherever certain patterns appear, but leave the +rest of the file alone. Such jobs are often easy with `awk'. The +`awk' utility interprets a special-purpose programming language that +makes it easy to handle simple data-reformatting jobs. The GNU implementation of `awk' is called `gawk'; if you invoke it with the proper options or environment variables (*note Options::), it @@ -818,12 +816,11 @@ such as input/output (I/O) redirection and pipes. different computing environments. This Info file, while describing the `awk' language in general, also describes the particular implementation of `awk' called `gawk' (which stands for "GNU `awk'"). `gawk' runs on -a broad range of Unix systems, ranging from Intel(R)-architecture -PC-based computers up through large-scale systems. `gawk' has also -been ported to Mac OS X, Microsoft Windows (all versions) and OS/2 PCs, -and OpenVMS. (Some other, obsolete systems to which `gawk' was once -ported are no longer supported and the code for those systems has been -removed.) +a broad range of Unix systems, ranging from Intel-architecture PC-based +computers up through large-scale systems. `gawk' has also been ported +to Mac OS X, Microsoft Windows (all versions) and OS/2 PCs, and OpenVMS. +(Some other, obsolete systems to which `gawk' was once ported are no +longer supported and the code for those systems has been removed.) * Menu: @@ -840,7 +837,7 @@ removed.) ---------- Footnotes ---------- - (1) The 2008 POSIX standard is accessable online at + (1) The 2008 POSIX standard is accessible online at `http://www.opengroup.org/onlinepubs/9699919799/'. (2) These commands are available on POSIX-compliant systems, as well @@ -1155,7 +1152,7 @@ released but remains in an early stage of development. Until the GNU operating system is more fully developed, you should consider using GNU/Linux, a freely distributable, Unix-like operating -system for Intel(R), Power Architecture, Sun SPARC, IBM S/390, and other +system for Intel, Power Architecture, Sun SPARC, IBM S/390, and other systems.(2) Many GNU/Linux distributions are available for download from the Internet. @@ -2249,14 +2246,13 @@ those that it has are much larger than they used to be. If you find yourself writing `awk' scripts of more than, say, a few hundred lines, you might consider using a different programming language. The shell is good at string and pattern matching; in -addition, it allows powerful use of the system utilities. More -conventional languages, such as C, C++, and Java, offer better -facilities for system programming and for managing the complexity of -large programs. Python offers a nice balance between high-level ease -of programming and access to system facilities. Programs in these -languages may require more lines of source code than the equivalent -`awk' programs, but they are easier to maintain and usually run more -efficiently. +addition, it allows powerful use of the system utilities. Python +offers a nice balance between high-level ease of programming and access +to system facilities.(1) + + ---------- Footnotes ---------- + + (1) Other popular scripting languages include Ruby and Perl. File: gawk.info, Node: Intro Summary, Prev: When, Up: Getting Started @@ -2475,9 +2471,9 @@ The following list describes options mandated by the POSIX standard: This option is particularly necessary for World Wide Web CGI applications that pass arguments through the URL; using this option prevents a malicious (or other) user from passing in - options, assignments, or `awk' source code (via `--source') to the - CGI application. This option should be used with `#!' scripts - (*note Executable Scripts::), like so: + options, assignments, or `awk' source code (via `-e') to the CGI + application. This option should be used with `#!' scripts (*note + Executable Scripts::), like so: #! /usr/local/bin/gawk -E @@ -2665,16 +2661,14 @@ standard input but then you will not be able to also use the standard input as a source of data.) Because it is clumsy using the standard `awk' mechanisms to mix -source file and command-line `awk' programs, `gawk' provides the -`--source' option. This does not require you to pre-empt the standard -input for your source code; it allows you to easily mix command-line -and library source code (*note AWKPATH Variable::). As with `-f', the -`--source' and `--include' options may also be used multiple times on -the command line. +source file and command-line `awk' programs, `gawk' provides the `-e' +option. This does not require you to pre-empt the standard input for +your source code; it allows you to easily mix command-line and library +source code (*note AWKPATH Variable::). As with `-f', the `-e' and `-i' +options may also be used multiple times on the command line. - If no `-f' or `--source' option is specified, then `gawk' uses the -first non-option command-line argument as the text of the program -source code. + If no `-f' or `-e' option is specified, then `gawk' uses the first +non-option command-line argument as the text of the program source code. If the environment variable `POSIXLY_CORRECT' exists, then `gawk' behaves in strict POSIX mode, exactly as if you had supplied `--posix'. @@ -2829,7 +2823,7 @@ in a standard directory in the default path and then specified on the command line with a short file name. Otherwise, the full file name would have to be typed for each file. - By using the `-i' option, or the `--source' and `-f' options, your + By using the `-i' option, or the `-e' and `-f' options, your command-line `awk' programs can use facilities in `awk' library files (*note Library Functions::). Path searching is not done if `gawk' is in compatibility mode. This is true for both `--traditional' and @@ -3348,6 +3342,10 @@ apply to both string constants and regexp constants: more than two hexadecimal digits produces undefined results. (The `\x' escape sequence is not allowed in POSIX `awk'.) + CAUTION: The next major relase of `gawk' will change, such + that a maximum of two hexadecimal digits following the `\x' + will be used. + `\/' A literal slash (necessary for regexp constants only). This sequence is used when you want to write a regexp constant that @@ -9611,29 +9609,36 @@ match to a given case is made, the case statement bodies execute until a `break', `continue', `next', `nextfile' or `exit' is encountered, or the end of the `switch' statement itself. For example: - switch (NR * 2 + 1) { - case 3: - case "11": - print NR - 1 - break - - case /2[[:digit:]]+/: - print NR - - default: - print NR + 1 - - case -1: - print NR * -1 + while ((c = getopt(ARGC, ARGV, "aksx")) != -1) { + switch (c) { + case "a": + # report size of all files + all_files = TRUE; + break + case "k": + BLOCK_SIZE = 1024 # 1K block size + break + case "s": + # do sums only + sum_only = TRUE + break + case "x": + # don't cross filesystems + fts_flags = or(fts_flags, FTS_XDEV) + break + case "?": + default: + usage() + break + } } Note that if none of the statements specified above halt execution of a matched `case' statement, execution falls through to the next -`case' until execution halts. In the above example, for any case value -starting with `2' followed by one or more digits, the `print' statement -is executed and then falls through into the `default' section, -executing its `print' statement. In turn, the -1 case will also be -executed since the `default' does not halt execution. +`case' until execution halts. In the above example, the `case' for +`"?"' falls through to the `default' case, which is to call a function +named `usage()'. (The `getopt()' function being called here is +described in *note Getopt Function::.) File: gawk.info, Node: Break Statement, Next: Continue Statement, Prev: Switch Statement, Up: Statements @@ -9734,7 +9739,8 @@ the previous example with the following `while' loop: print "" } -This program loops forever once `x' reaches 5. +This program loops forever once `x' reaches 5, since the increment +(`x++') is never reached. The `continue' statement has no special meaning with respect to the `switch' statement, nor does it have any meaning when used outside the @@ -10498,8 +10504,16 @@ elements from `ARGV' (*note Delete::). All of these actions are typically done in the `BEGIN' rule, before actual processing of the input begins. *Note Split Program::, and see *note Tee Program::, for examples of each way of removing elements from -`ARGV'. The following fragment processes `ARGV' in order to examine, -and then remove, command-line options: +`ARGV'. + + To actually get options into an `awk' program, end the `awk' options +with `--' and then supply the `awk' program's options, in the following +manner: + + awk -f myprog.awk -- -v -q file1 file2 ... + + The following fragment processes `ARGV' in order to examine, and +then remove, the above command-line options: BEGIN { for (i = 1; i < ARGC; i++) { @@ -10517,19 +10531,14 @@ and then remove, command-line options: } } - To actually get the options into the `awk' program, end the `awk' -options with `--' and then supply the `awk' program's options, in the -following manner: - - awk -f myprog -- -v -q file1 file2 ... - - This is not necessary in `gawk'. Unless `--posix' has been -specified, `gawk' silently puts any unrecognized options into `ARGV' -for the `awk' program to deal with. As soon as it sees an unknown -option, `gawk' stops looking for other options that it might otherwise -recognize. The previous example with `gawk' would be: + Ending the `awk' options with `--' isn't necessary in `gawk'. Unless +`--posix' has been specified, `gawk' silently puts any unrecognized +options into `ARGV' for the `awk' program to deal with. As soon as it +sees an unknown option, `gawk' stops looking for other options that it +might otherwise recognize. The previous command line with `gawk' would +be: - gawk -f myprog -q -v file1 file2 ... + gawk -f myprog.awk -q -v file1 file2 ... Because `-q' is not a valid `gawk' option, it and the following `-v' are passed on to the `awk' program. (*Note Getopt Function::, for an @@ -10776,8 +10785,9 @@ been assigned any value as well as elements that have been deleted # Check if "foo" exists in a: Incorrect! if (a["foo"] != "") ... - This is incorrect, since this will _create_ `a["foo"]' if it - didn't exist before! + This is incorrect for two reasons. First, it _creates_ `a["foo"]' + if it didn't exist before! Second, it is valid (if a bit unusual) + to set an array element equal to the empty string. To determine whether an element exists in an array at a certain index, use the following expression: @@ -11330,10 +11340,11 @@ multidimensional array, use the same operator (`in') that is used for single dimensional arrays. Write the whole sequence of indices in parentheses, separated by commas, as the left operand: - (SUBSCRIPT1, SUBSCRIPT2, ...) in ARRAY + if ((SUBSCRIPT1, SUBSCRIPT2, ...) in ARRAY) + ... - The following example treats its input as a two-dimensional array of -fields; it rotates this array 90 degrees clockwise and prints the + Here is an example that treats its input as a two-dimensional array +of fields; it rotates this array 90 degrees clockwise and prints the result. It assumes that all lines have the same number of elements: { @@ -11787,6 +11798,9 @@ brackets ([ ]): easy to keep track of the seeds in case you need to consistently reproduce sequences of random numbers. + POSIX does not specify the initial seed; it differs among `awk' + implementations. + ---------- Footnotes ---------- (1) The C version of `rand()' on many Unix systems is known to @@ -13368,7 +13382,8 @@ this program, using our function to format the results, prints: 5.6 21.2 - This function deletes all the elements in an array: + This function deletes all the elements in an array (recall that the +extra whitespace signifies the start of the local variable list): function delarray(a, i) { @@ -13402,7 +13417,7 @@ empty. way: $ echo "Don't Panic!" | - > gawk --source '{ print rev($0) }' -f rev.awk + > gawk -e '{ print rev($0) }' -f rev.awk -| !cinaP t'noD The C `ctime()' function takes a timestamp and returns it in a @@ -14166,7 +14181,7 @@ P.J. Plauger wrote: In fact, they felt this idea was so important that they placed this statement on the cover of their book. Because we believe strongly that their statement is correct, this major node and *note Sample -Programs::, provide a good-sized body of code for you to read, and we +Programs::, provide a good-sized body of code for you to read and, we hope, to learn from. This major node presents a library of useful `awk' functions. Many @@ -18203,8 +18218,8 @@ language.(1) It works as follows: 2. For any arguments that do represent `awk' text, put the arguments into a shell variable that will be expanded. There are two cases: - a. Literal text, provided with `--source' or `--source='. This - text is just appended directly. + a. Literal text, provided with `-e' or `--source'. This text is + just appended directly. b. Source file names, provided with `-f'. We use a neat trick and append `@include FILENAME' to the shell variable's @@ -21345,8 +21360,8 @@ File: gawk.info, Node: Debugging Summary, Prev: Limitations, Up: Debugger * Debuggers let you step through your program one statement at a time, examine and change variable and array values, and do a - number of other things that let understand what your program is - actually doing (as opposed to what it is supposed to do). + number of other things that let you understand what your program + is actually doing (as opposed to what it is supposed to do). * Like most debuggers, the `gawk' debugger works in terms of stack frames, and lets you set both breakpoints (stop at a point in the @@ -21613,10 +21628,9 @@ Auto-set::). The MPFR library provides precise control over precisions and rounding modes, and gives correctly rounded, reproducible, -platform-independent results. With either of the command-line options -`--bignum' or `-M', all floating-point arithmetic operators and numeric -functions can yield results to any desired precision level supported by -MPFR. +platform-independent results. With the `-M' command-line option, all +floating-point arithmetic operators and numeric functions can yield +results to any desired precision level supported by MPFR. Two built-in variables, `PREC' and `ROUNDMODE', provide control over the working precision and the rounding mode. The precision and the @@ -21629,7 +21643,7 @@ File: gawk.info, Node: FP Math Caution, Next: Arbitrary Precision Integers, P 15.4 Floating Point Arithmetic: Caveat Emptor! ============================================== - Math class is tough! -- Teen Talk Barbie (July, 1992) + Math class is tough! -- Teen Talk Barbie, July 1992 This minor node provides a high level overview of the issues involved when doing lots of floating-point arithmetic.(1) The @@ -22023,13 +22037,13 @@ File: gawk.info, Node: Arbitrary Precision Integers, Next: POSIX Floating Poin 15.5 Arbitrary Precision Integer Arithmetic with `gawk' ======================================================= -When given one of the options `--bignum' or `-M', `gawk' performs all -integer arithmetic using GMP arbitrary precision integers. Any number -that looks like an integer in a source or data file is stored as an -arbitrary precision integer. The size of the integer is limited only -by the available memory. For example, the following computes 5^4^3^2, -the result of which is beyond the limits of ordinary hardware -double-precision floating point values: +When given the `-M' option, `gawk' performs all integer arithmetic +using GMP arbitrary precision integers. Any number that looks like an +integer in a source or data file is stored as an arbitrary precision +integer. The size of the integer is limited only by the available +memory. For example, the following computes 5^4^3^2, the result of +which is beyond the limits of ordinary hardware double-precision +floating point values: $ gawk -M 'BEGIN { > x = 5^4^3^2 @@ -22232,13 +22246,13 @@ File: gawk.info, Node: Floating point summary, Prev: POSIX Floating Point Prob * Often, increasing the accuracy and then rounding to the desired number of digits produces reasonable results. - * Use either `-M' or `--bignum' to enable MPFR arithmetic. Use - `PREC' to set the precision in bits, and `ROUNDMODE' to set the - IEEE 754 rounding mode. + * Use `-M' (or `--bignum') to enable MPFR arithmetic. Use `PREC' to + set the precision in bits, and `ROUNDMODE' to set the IEEE 754 + rounding mode. - * With `-M' or `--bignum', `gawk' performs arbitrary precision - integer arithmetic using the GMP library. This is faster and more - space efficient than using MPFR for the same calculations. + * With `-M', `gawk' performs arbitrary precision integer arithmetic + using the GMP library. This is faster and more space efficient + than using MPFR for the same calculations. * There are several "dark corners" with respect to floating-point numbers where `gawk' disagrees with the POSIX standard. It pays @@ -22558,7 +22572,7 @@ operations: place `-Dinline=''' on your command line, or use the GNU Autotools and include a `config.h' file in your extensions. - * All pointers filled in by `gawk' are to memory managed by `gawk' + * All pointers filled in by `gawk' point to memory managed by `gawk' and should be treated by the extension as read-only. Memory for _all_ strings passed into `gawk' from the extension _must_ come from calling the API-provided function pointers `api_malloc()', @@ -22968,7 +22982,7 @@ File: gawk.info, Node: Exit Callback Functions, Next: Extension Version String An "exit callback" function is a function that `gawk' calls before it exits. Such functions are useful if you have general "cleanup" tasks -that should be performed in your extension (such as closing data base +that should be performed in your extension (such as closing database connections or other resource deallocations). You can register such a function with `gawk' using the following function. @@ -26095,7 +26109,7 @@ the current version of `gawk'. `-r', `-S', `-t', and `-V' short options. Also, the ability to use GNU-style long-named options that start with `--' and the `--assign', `--bignum', `--characters-as-bytes', - `--copyright', `--debug', `--dump-variables', `--execle', + `--copyright', `--debug', `--dump-variables', `--exec', `--field-separator', `--file', `--gen-pot', `--help', `--include', `--lint', `--lint-old', `--load', `--non-decimal-data', `--optimize', `--posix', @@ -27542,7 +27556,7 @@ These give the same result as the `-W BINMODE=2' option in `mawk'. The following changes the record separator to `"\r\n"' and sets binary mode on reads, but does not affect the mode on standard input: - gawk -v RS="\r\n" --source "BEGIN { BINMODE = 1 }" ... + gawk -v RS="\r\n" -e "BEGIN { BINMODE = 1 }" ... or: @@ -28881,7 +28895,7 @@ C.7 Summary `--parsedebug' option is available if `gawk' is compiled with `-DDEBUG'. - * The source code for `gawk' is maintained in a publicly accessable + * The source code for `gawk' is maintained in a publicly accessible Git repository. Anyone may check it out and view the source. * Contributions to `gawk' are welcome. Following the steps outlined @@ -31050,6 +31064,7 @@ Index * -c option: Options. (line 81) * -D option: Options. (line 108) * -d option: Options. (line 93) +* -e option: Options. (line 333) * -E option: Options. (line 125) * -e option: Options. (line 117) * -f option: Options. (line 25) @@ -31133,10 +31148,10 @@ Index * [] (square brackets), regexp operator: Regexp Operators. (line 56) * \ (backslash): Comments. (line 50) * \ (backslash) in shell commands: Read Terminal. (line 25) -* \ (backslash), \" escape sequence: Escape Sequences. (line 76) +* \ (backslash), \" escape sequence: Escape Sequences. (line 80) * \ (backslash), \' operator (gawk): GNU Regexp Operators. (line 56) -* \ (backslash), \/ escape sequence: Escape Sequences. (line 69) +* \ (backslash), \/ escape sequence: Escape Sequences. (line 73) * \ (backslash), \< operator (gawk): GNU Regexp Operators. (line 30) * \ (backslash), \> operator (gawk): GNU Regexp Operators. @@ -31177,7 +31192,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 112) + (line 116) * \ (backslash), in regexp constants: Computed Regexps. (line 29) * \ (backslash), in shell commands: Quoting. (line 48) * \ (backslash), regexp operator: Regexp Operators. (line 18) @@ -31370,7 +31385,7 @@ Index (line 6) * awk, function of: Getting Started. (line 6) * awk, gawk and <1>: This Manual. (line 14) -* awk, gawk and: Preface. (line 23) +* awk, gawk and: Preface. (line 21) * awk, history of: History. (line 17) * awk, implementation issues, pipes: Redirection. (line 135) * awk, implementations: Other Versions. (line 6) @@ -31378,15 +31393,15 @@ Index * awk, invoking: Command Line. (line 6) * awk, new vs. old: Names. (line 6) * awk, new vs. old, OFMT variable: Strings And Numbers. (line 57) -* awk, POSIX and: Preface. (line 23) -* awk, POSIX and, See Also POSIX awk: Preface. (line 23) +* awk, POSIX and: Preface. (line 21) +* awk, POSIX and, See Also POSIX awk: Preface. (line 21) * awk, regexp constants and: Comparison Operators. (line 102) -* awk, See Also gawk: Preface. (line 36) +* awk, See Also gawk: Preface. (line 34) * awk, terms describing: This Manual. (line 6) * awk, uses for <1>: When. (line 6) * awk, uses for <2>: Getting Started. (line 12) -* awk, uses for: Preface. (line 23) +* awk, uses for: Preface. (line 21) * awk, versions of <1>: V7/SVR3.1. (line 6) * awk, versions of: Names. (line 10) * awk, versions of, changes between SVR3.1 and SVR4: SVR4. (line 6) @@ -31406,10 +31421,10 @@ Index * b debugger command (alias for break): Breakpoint Control. (line 11) * backslash (\): Comments. (line 50) * backslash (\) in shell commands: Read Terminal. (line 25) -* backslash (\), \" escape sequence: Escape Sequences. (line 76) +* backslash (\), \" escape sequence: Escape Sequences. (line 80) * backslash (\), \' operator (gawk): GNU Regexp Operators. (line 56) -* backslash (\), \/ escape sequence: Escape Sequences. (line 69) +* backslash (\), \/ escape sequence: Escape Sequences. (line 73) * backslash (\), \< operator (gawk): GNU Regexp Operators. (line 30) * backslash (\), \> operator (gawk): GNU Regexp Operators. @@ -31450,7 +31465,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 112) + (line 116) * backslash (\), in regexp constants: Computed Regexps. (line 29) * backslash (\), in shell commands: Quoting. (line 48) * backslash (\), regexp operator: Regexp Operators. (line 18) @@ -31545,7 +31560,7 @@ Index * Brian Kernighan's awk <3>: String Functions. (line 490) * Brian Kernighan's awk <4>: Delete. (line 48) * Brian Kernighan's awk <5>: Nextfile Statement. (line 47) -* Brian Kernighan's awk <6>: Continue Statement. (line 43) +* Brian Kernighan's awk <6>: Continue Statement. (line 44) * Brian Kernighan's awk <7>: Break Statement. (line 51) * Brian Kernighan's awk <8>: I/O And BEGIN/END. (line 16) * Brian Kernighan's awk <9>: Concatenation. (line 36) @@ -31554,9 +31569,9 @@ Index (line 67) * Brian Kernighan's awk <12>: GNU Regexp Operators. (line 83) -* Brian Kernighan's awk <13>: Escape Sequences. (line 116) +* Brian Kernighan's awk <13>: Escape Sequences. (line 120) * Brian Kernighan's awk <14>: When. (line 21) -* Brian Kernighan's awk: Preface. (line 15) +* Brian Kernighan's awk: Preface. (line 13) * Brian Kernighan's awk, extensions: BTL. (line 6) * Brian Kernighan's awk, source code: Other Versions. (line 13) * Brini, Davide: Signature Program. (line 6) @@ -31752,9 +31767,9 @@ Index * cosine: Numeric Functions. (line 15) * counting: Wc Program. (line 6) * csh utility: Statements/Lines. (line 44) -* csh utility, POSIXLY_CORRECT environment variable: Options. (line 353) +* csh utility, POSIXLY_CORRECT environment variable: Options. (line 351) * csh utility, |& operator, comparison with: Two-way I/O. (line 25) -* ctime() user-defined function: Function Example. (line 73) +* ctime() user-defined function: Function Example. (line 74) * currency symbols, localization: Explaining gettext. (line 104) * current system time: Time Functions. (line 66) * custom.h file: Configuration Philosophy. @@ -31779,11 +31794,11 @@ Index * dark corner, close() function: Close Files And Pipes. (line 131) * dark corner, command-line arguments: Assignment Options. (line 43) -* dark corner, continue statement: Continue Statement. (line 43) +* dark corner, continue statement: Continue Statement. (line 44) * dark corner, CONVFMT variable: Strings And Numbers. (line 40) * dark corner, escape sequences: Other Arguments. (line 31) * dark corner, escape sequences, for metacharacters: Escape Sequences. - (line 134) + (line 138) * dark corner, exit statement: Exit Statement. (line 30) * dark corner, field separators: Field Splitting Summary. (line 46) @@ -31954,7 +31969,7 @@ Index * describe call stack frame, in debugger: Debugger Info. (line 27) * differences between gawk and awk: String Functions. (line 197) * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV. - (line 88) + (line 90) * differences in awk and gawk, ARGIND variable: Auto-set. (line 44) * differences in awk and gawk, array elements, deleting: Delete. (line 39) @@ -32430,7 +32445,7 @@ Index * gawk version: Auto-set. (line 207) * gawk, ARGIND variable in: Other Arguments. (line 12) * gawk, awk and <1>: This Manual. (line 14) -* gawk, awk and: Preface. (line 23) +* gawk, awk and: Preface. (line 21) * gawk, bitwise operations in: Bitwise Functions. (line 39) * gawk, break statement in: Break Statement. (line 51) * gawk, built-in variables and: Built-in Variables. (line 14) @@ -32444,7 +32459,7 @@ Index (line 6) * gawk, configuring, options: Additional Configuration Options. (line 6) -* gawk, continue statement in: Continue Statement. (line 43) +* gawk, continue statement in: Continue Statement. (line 44) * gawk, distribution: Distribution contents. (line 6) * gawk, ERRNO variable in <1>: TCP/IP Networking. (line 54) @@ -32453,7 +32468,7 @@ Index * gawk, ERRNO variable in <4>: Close Files And Pipes. (line 139) * gawk, ERRNO variable in: Getline. (line 19) -* gawk, escape sequences: Escape Sequences. (line 124) +* gawk, escape sequences: Escape Sequences. (line 128) * gawk, extensions, disabling: Options. (line 252) * gawk, features, adding: Adding Code. (line 6) * gawk, features, advanced: Advanced Features. (line 6) @@ -32507,14 +32522,14 @@ Index * gawk, RT variable in <1>: Auto-set. (line 265) * gawk, RT variable in <2>: Multiple Line. (line 129) * gawk, RT variable in: awk split records. (line 124) -* gawk, See Also awk: Preface. (line 36) +* gawk, See Also awk: Preface. (line 34) * gawk, source code, obtaining: Getting. (line 6) * gawk, splitting fields and: Constant Size. (line 88) * gawk, string-translation functions: I18N Functions. (line 6) * gawk, SYMTAB array in: Auto-set. (line 269) * gawk, TEXTDOMAIN variable in: User-modified. (line 152) * gawk, timestamps: Time Functions. (line 6) -* gawk, uses for: Preface. (line 36) +* gawk, uses for: Preface. (line 34) * gawk, versions of, information about, printing: Options. (line 298) * gawk, VMS version of: VMS Installation. (line 6) * gawk, word-boundary operator: GNU Regexp Operators. @@ -32576,7 +32591,7 @@ Index * git utility: gawkextlib. (line 29) * Git, use of for gawk source code: Derived Files. (line 6) * GNITS mailing list: Acknowledgments. (line 52) -* GNU awk, See gawk: Preface. (line 53) +* GNU awk, See gawk: Preface. (line 51) * GNU Free Documentation License: GNU Free Documentation License. (line 7) * GNU General Public License: Glossary. (line 305) @@ -32658,7 +32673,7 @@ Index (line 43) * in operator, order of array access: Scanning an Array. (line 48) * in operator, testing if array element exists: Reference to Elements. - (line 37) + (line 38) * in operator, use in loops: Scanning an Array. (line 17) * increment operators: Increment Ops. (line 6) * index: String Functions. (line 155) @@ -32826,7 +32841,7 @@ Index * lint checking, empty programs: Command Line. (line 16) * lint checking, issuing warnings: Options. (line 185) * lint checking, POSIXLY_CORRECT environment variable: Options. - (line 338) + (line 336) * lint checking, undefined functions: Pass By Value/Reference. (line 88) * LINT variable: User-modified. (line 88) @@ -32887,7 +32902,7 @@ Index * mawk utility <2>: Nextfile Statement. (line 47) * mawk utility <3>: Concatenation. (line 36) * mawk utility <4>: Getline/Pipe. (line 62) -* mawk utility: Escape Sequences. (line 124) +* mawk utility: Escape Sequences. (line 128) * maximum precision supported by MPFR library: Auto-set. (line 221) * McIlroy, Doug: Glossary. (line 149) * McPhee, Patrick: Contributors. (line 100) @@ -32900,7 +32915,7 @@ Index (line 54) * messages from extensions: Printing Messages. (line 6) * metacharacters in regular expressions: Regexp Operators. (line 6) -* metacharacters, escape sequences for: Escape Sequences. (line 130) +* metacharacters, escape sequences for: Escape Sequences. (line 134) * minimum precision supported by MPFR library: Auto-set. (line 224) * mktime: Time Functions. (line 25) * modifiers, in format specifiers: Format Modifiers. (line 6) @@ -33121,14 +33136,14 @@ Index * plus sign (+), += operator: Assignment Ops. (line 82) * plus sign (+), regexp operator: Regexp Operators. (line 103) * pointers to functions: Indirect Calls. (line 6) -* portability: Escape Sequences. (line 94) +* portability: Escape Sequences. (line 98) * portability, #! (executable scripts): Executable Scripts. (line 33) * portability, ** operator and: Arithmetic Ops. (line 81) * portability, **= operator and: Assignment Ops. (line 143) * portability, ARGV variable: Executable Scripts. (line 42) * portability, backslash continuation and: Statements/Lines. (line 30) * portability, backslash in escape sequences: Escape Sequences. - (line 112) + (line 116) * portability, close() function and: Close Files And Pipes. (line 81) * portability, data files as single record: gawk split records. @@ -33146,7 +33161,7 @@ Index * portability, NF variable, decrementing: Changing Fields. (line 115) * portability, operators: Increment Ops. (line 60) * portability, operators, not in POSIX awk: Precedence. (line 98) -* portability, POSIXLY_CORRECT environment variable: Options. (line 358) +* portability, POSIXLY_CORRECT environment variable: Options. (line 356) * portability, substr() function: String Functions. (line 510) * portable object files <1>: Translator i18n. (line 6) * portable object files: Explaining gettext. (line 37) @@ -33167,14 +33182,14 @@ Index * POSIX awk, < operator and: Getline/File. (line 26) * POSIX awk, arithmetic operators and: Arithmetic Ops. (line 30) * POSIX awk, backslashes in string constants: Escape Sequences. - (line 112) + (line 116) * 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. (line 30) * POSIX awk, break statement and: Break Statement. (line 51) * POSIX awk, changes in awk versions: POSIX. (line 6) -* POSIX awk, continue statement and: Continue Statement. (line 43) +* POSIX awk, continue statement and: Continue Statement. (line 44) * POSIX awk, CONVFMT variable and: User-modified. (line 30) * POSIX awk, date utility and: Time Functions. (line 254) * POSIX awk, field separators and <1>: Field Splitting Summary. @@ -33196,10 +33211,10 @@ Index * POSIX awk, timestamps and: Time Functions. (line 6) * POSIX awk, | I/O operator and: Getline/Pipe. (line 55) * POSIX mode: Options. (line 252) -* POSIX, awk and: Preface. (line 23) +* POSIX, awk and: Preface. (line 21) * POSIX, gawk extensions not included in: POSIX/GNU. (line 6) * POSIX, programs, implementing in awk: Clones. (line 6) -* POSIXLY_CORRECT environment variable: Options. (line 338) +* POSIXLY_CORRECT environment variable: Options. (line 336) * PREC variable: User-modified. (line 124) * precedence <1>: Precedence. (line 6) * precedence: Increment Ops. (line 60) @@ -33400,7 +33415,7 @@ Index * return statement, user-defined functions: Return Statement. (line 6) * return value, close() function: Close Files And Pipes. (line 131) -* rev() user-defined function: Function Example. (line 53) +* rev() user-defined function: Function Example. (line 54) * revoutput extension: Extension Sample Revout. (line 11) * revtwoway extension: Extension Sample Rev2way. @@ -33535,7 +33550,7 @@ Index * side effects <1>: Increment Ops. (line 11) * side effects: Concatenation. (line 41) * side effects, array indexing: Reference to Elements. - (line 42) + (line 43) * side effects, asort() function: Array Sorting Functions. (line 24) * side effects, assignment expressions: Assignment Ops. (line 23) @@ -33548,14 +33563,14 @@ Index * sidebar, A Constant's Base Does Not Affect Its Value: Nondecimal-numbers. (line 64) * sidebar, Backslash Before Regular Characters: Escape Sequences. - (line 110) + (line 114) * sidebar, Changing FS Does Not Affect the Fields: Field Splitting Summary. (line 38) * sidebar, Changing NR and FNR: Auto-set. (line 307) * sidebar, Controlling Output Buffering with system(): I/O Functions. (line 138) * sidebar, Escape Sequences for Metacharacters: Escape Sequences. - (line 128) + (line 132) * sidebar, FS and IGNORECASE: Field Splitting Summary. (line 64) * sidebar, Interactive Versus Noninteractive Buffering: I/O Functions. @@ -33783,7 +33798,7 @@ Index (line 37) * troubleshooting, awk uses FS not IFS: Field Separators. (line 30) * troubleshooting, backslash before nonspecial character: Escape Sequences. - (line 112) + (line 116) * troubleshooting, division: Arithmetic Ops. (line 44) * troubleshooting, fatal errors, field widths, specifying: Constant Size. (line 23) @@ -33839,7 +33854,7 @@ Index * uniq.awk program: Uniq Program. (line 65) * Unix: Glossary. (line 611) * Unix awk, backslashes in escape sequences: Escape Sequences. - (line 124) + (line 128) * Unix awk, close() function and: Close Files And Pipes. (line 131) * Unix awk, password files, field separators and: Command Line Field Separator. @@ -33986,548 +34001,549 @@ Tag Table: Node: Top1204 Node: Foreword41858 Node: Preface46203 -Ref: Preface-Footnote-149350 -Ref: Preface-Footnote-249457 -Node: History49689 -Node: Names52063 -Ref: Names-Footnote-153527 -Node: This Manual53600 -Ref: This Manual-Footnote-159379 -Node: Conventions59479 -Node: Manual History61635 -Ref: Manual History-Footnote-164714 -Ref: Manual History-Footnote-264755 -Node: How To Contribute64829 -Node: Acknowledgments66068 -Node: Getting Started70816 -Node: Running gawk73250 -Node: One-shot74440 -Node: Read Terminal75665 -Ref: Read Terminal-Footnote-177628 -Node: Long77799 -Node: Executable Scripts79175 -Ref: Executable Scripts-Footnote-181008 -Ref: Executable Scripts-Footnote-281110 -Node: Comments81657 -Node: Quoting84130 -Node: DOS Quoting89443 -Node: Sample Data Files90118 -Node: Very Simple92672 -Node: Two Rules97445 -Node: More Complex99339 -Ref: More Complex-Footnote-1102271 -Node: Statements/Lines102356 -Ref: Statements/Lines-Footnote-1106812 -Node: Other Features107077 -Node: When108005 -Node: Intro Summary110175 -Node: Invoking Gawk110941 -Node: Command Line112456 -Node: Options113247 -Ref: Options-Footnote-1128947 -Node: Other Arguments128972 -Node: Naming Standard Input131634 -Node: Environment Variables132727 -Node: AWKPATH Variable133285 -Ref: AWKPATH Variable-Footnote-1136157 -Ref: AWKPATH Variable-Footnote-2136202 -Node: AWKLIBPATH Variable136462 -Node: Other Environment Variables137221 -Node: Exit Status140673 -Node: Include Files141348 -Node: Loading Shared Libraries144926 -Node: Obsolete146310 -Node: Undocumented147007 -Node: Invoking Summary147274 -Node: Regexp148874 -Node: Regexp Usage150324 -Node: Escape Sequences152357 -Node: Regexp Operators158024 -Ref: Regexp Operators-Footnote-1165504 -Ref: Regexp Operators-Footnote-2165651 -Node: Bracket Expressions165749 -Ref: table-char-classes167639 -Node: GNU Regexp Operators170579 -Node: Case-sensitivity174302 -Ref: Case-sensitivity-Footnote-1177194 -Ref: Case-sensitivity-Footnote-2177429 -Node: Leftmost Longest177537 -Node: Computed Regexps178738 -Node: Regexp Summary182110 -Node: Reading Files183579 -Node: Records185671 -Node: awk split records186414 -Node: gawk split records191272 -Ref: gawk split records-Footnote-1195793 -Node: Fields195830 -Ref: Fields-Footnote-1198794 -Node: Nonconstant Fields198880 -Ref: Nonconstant Fields-Footnote-1201110 -Node: Changing Fields201312 -Node: Field Separators207266 -Node: Default Field Splitting209968 -Node: Regexp Field Splitting211085 -Node: Single Character Fields214426 -Node: Command Line Field Separator215485 -Node: Full Line Fields218911 -Ref: Full Line Fields-Footnote-1219419 -Node: Field Splitting Summary219465 -Ref: Field Splitting Summary-Footnote-1222597 -Node: Constant Size222698 -Node: Splitting By Content227304 -Ref: Splitting By Content-Footnote-1231377 -Node: Multiple Line231417 -Ref: Multiple Line-Footnote-1237273 -Node: Getline237452 -Node: Plain Getline239668 -Node: Getline/Variable241763 -Node: Getline/File242910 -Node: Getline/Variable/File244294 -Ref: Getline/Variable/File-Footnote-1245893 -Node: Getline/Pipe245980 -Node: Getline/Variable/Pipe248679 -Node: Getline/Coprocess249786 -Node: Getline/Variable/Coprocess251038 -Node: Getline Notes251775 -Node: Getline Summary254579 -Ref: table-getline-variants254987 -Node: Read Timeout255899 -Ref: Read Timeout-Footnote-1259726 -Node: Command-line directories259784 -Node: Input Summary260688 -Node: Input Exercises263825 -Node: Printing264558 -Node: Print266280 -Node: Print Examples267621 -Node: Output Separators270400 -Node: OFMT272416 -Node: Printf273774 -Node: Basic Printf274680 -Node: Control Letters276219 -Node: Format Modifiers280210 -Node: Printf Examples286237 -Node: Redirection288701 -Node: Special Files295673 -Node: Special FD296206 -Ref: Special FD-Footnote-1299803 -Node: Special Network299877 -Node: Special Caveats300727 -Node: Close Files And Pipes301523 -Ref: Close Files And Pipes-Footnote-1308684 -Ref: Close Files And Pipes-Footnote-2308832 -Node: Output Summary308982 -Node: Output exercises309979 -Node: Expressions310659 -Node: Values311844 -Node: Constants312520 -Node: Scalar Constants313200 -Ref: Scalar Constants-Footnote-1314059 -Node: Nondecimal-numbers314309 -Node: Regexp Constants317309 -Node: Using Constant Regexps317784 -Node: Variables320856 -Node: Using Variables321511 -Node: Assignment Options323235 -Node: Conversion325110 -Node: Strings And Numbers325634 -Ref: Strings And Numbers-Footnote-1328696 -Node: Locale influences conversions328805 -Ref: table-locale-affects331522 -Node: All Operators332110 -Node: Arithmetic Ops332740 -Node: Concatenation335245 -Ref: Concatenation-Footnote-1338064 -Node: Assignment Ops338184 -Ref: table-assign-ops343167 -Node: Increment Ops344484 -Node: Truth Values and Conditions347922 -Node: Truth Values349005 -Node: Typing and Comparison350054 -Node: Variable Typing350847 -Node: Comparison Operators354499 -Ref: table-relational-ops354909 -Node: POSIX String Comparison358459 -Ref: POSIX String Comparison-Footnote-1359543 -Node: Boolean Ops359681 -Ref: Boolean Ops-Footnote-1363751 -Node: Conditional Exp363842 -Node: Function Calls365569 -Node: Precedence369449 -Node: Locales373118 -Node: Expressions Summary374749 -Node: Patterns and Actions377290 -Node: Pattern Overview378406 -Node: Regexp Patterns380083 -Node: Expression Patterns380626 -Node: Ranges384407 -Node: BEGIN/END387513 -Node: Using BEGIN/END388275 -Ref: Using BEGIN/END-Footnote-1391011 -Node: I/O And BEGIN/END391117 -Node: BEGINFILE/ENDFILE393402 -Node: Empty396333 -Node: Using Shell Variables396650 -Node: Action Overview398933 -Node: Statements401260 -Node: If Statement403108 -Node: While Statement404606 -Node: Do Statement406650 -Node: For Statement407806 -Node: Switch Statement410958 -Node: Break Statement413061 -Node: Continue Statement415116 -Node: Next Statement416909 -Node: Nextfile Statement419299 -Node: Exit Statement421954 -Node: Built-in Variables424358 -Node: User-modified425485 -Ref: User-modified-Footnote-1433174 -Node: Auto-set433236 -Ref: Auto-set-Footnote-1446155 -Ref: Auto-set-Footnote-2446360 -Node: ARGC and ARGV446416 -Node: Pattern Action Summary450270 -Node: Arrays452493 -Node: Array Basics454042 -Node: Array Intro454868 -Ref: figure-array-elements456841 -Node: Reference to Elements459248 -Node: Assigning Elements461521 -Node: Array Example462012 -Node: Scanning an Array463744 -Node: Controlling Scanning466759 -Ref: Controlling Scanning-Footnote-1471932 -Node: Delete472248 -Ref: Delete-Footnote-1475013 -Node: Numeric Array Subscripts475070 -Node: Uninitialized Subscripts477253 -Node: Multidimensional478878 -Node: Multiscanning481971 -Node: Arrays of Arrays483560 -Node: Arrays Summary488223 -Node: Functions490328 -Node: Built-in491201 -Node: Calling Built-in492279 -Node: Numeric Functions494267 -Ref: Numeric Functions-Footnote-1499011 -Ref: Numeric Functions-Footnote-2499368 -Ref: Numeric Functions-Footnote-3499416 -Node: String Functions499685 -Ref: String Functions-Footnote-1522696 -Ref: String Functions-Footnote-2522825 -Ref: String Functions-Footnote-3523073 -Node: Gory Details523160 -Ref: table-sub-escapes524947 -Ref: table-sub-proposed526467 -Ref: table-posix-sub527831 -Ref: table-gensub-escapes529371 -Ref: Gory Details-Footnote-1530547 -Node: I/O Functions530698 -Ref: I/O Functions-Footnote-1537821 -Node: Time Functions537968 -Ref: Time Functions-Footnote-1548432 -Ref: Time Functions-Footnote-2548500 -Ref: Time Functions-Footnote-3548658 -Ref: Time Functions-Footnote-4548769 -Ref: Time Functions-Footnote-5548881 -Ref: Time Functions-Footnote-6549108 -Node: Bitwise Functions549374 -Ref: table-bitwise-ops549936 -Ref: Bitwise Functions-Footnote-1554181 -Node: Type Functions554365 -Node: I18N Functions555507 -Node: User-defined557152 -Node: Definition Syntax557956 -Ref: Definition Syntax-Footnote-1563135 -Node: Function Example563204 -Ref: Function Example-Footnote-1565768 -Node: Function Caveats565790 -Node: Calling A Function566308 -Node: Variable Scope567263 -Node: Pass By Value/Reference570251 -Node: Return Statement573761 -Node: Dynamic Typing576745 -Node: Indirect Calls577674 -Node: Functions Summary587387 -Node: Library Functions589926 -Ref: Library Functions-Footnote-1593544 -Ref: Library Functions-Footnote-2593687 -Node: Library Names593858 -Ref: Library Names-Footnote-1597331 -Ref: Library Names-Footnote-2597551 -Node: General Functions597637 -Node: Strtonum Function598665 -Node: Assert Function601445 -Node: Round Function604771 -Node: Cliff Random Function606312 -Node: Ordinal Functions607328 -Ref: Ordinal Functions-Footnote-1610405 -Ref: Ordinal Functions-Footnote-2610657 -Node: Join Function610868 -Ref: Join Function-Footnote-1612639 -Node: Getlocaltime Function612839 -Node: Readfile Function616575 -Node: Data File Management618414 -Node: Filetrans Function619046 -Node: Rewind Function623115 -Node: File Checking624673 -Ref: File Checking-Footnote-1625805 -Node: Empty Files626006 -Node: Ignoring Assigns627985 -Node: Getopt Function629539 -Ref: Getopt Function-Footnote-1640842 -Node: Passwd Functions641045 -Ref: Passwd Functions-Footnote-1650024 -Node: Group Functions650112 -Ref: Group Functions-Footnote-1658053 -Node: Walking Arrays658266 -Node: Library Functions Summary659869 -Node: Library exercises661257 -Node: Sample Programs662537 -Node: Running Examples663307 -Node: Clones664035 -Node: Cut Program665259 -Node: Egrep Program675127 -Ref: Egrep Program-Footnote-1683098 -Node: Id Program683208 -Node: Split Program686872 -Ref: Split Program-Footnote-1690410 -Node: Tee Program690538 -Node: Uniq Program693345 -Node: Wc Program700775 -Ref: Wc Program-Footnote-1705040 -Node: Miscellaneous Programs705132 -Node: Dupword Program706345 -Node: Alarm Program708376 -Node: Translate Program713190 -Ref: Translate Program-Footnote-1717581 -Ref: Translate Program-Footnote-2717851 -Node: Labels Program717985 -Ref: Labels Program-Footnote-1721356 -Node: Word Sorting721440 -Node: History Sorting725483 -Node: Extract Program727319 -Node: Simple Sed734855 -Node: Igawk Program737917 -Ref: Igawk Program-Footnote-1752228 -Ref: Igawk Program-Footnote-2752429 -Node: Anagram Program752567 -Node: Signature Program755635 -Node: Programs Summary756882 -Node: Programs Exercises758097 -Node: Advanced Features761748 -Node: Nondecimal Data763696 -Node: Array Sorting765273 -Node: Controlling Array Traversal765970 -Node: Array Sorting Functions774250 -Ref: Array Sorting Functions-Footnote-1778157 -Node: Two-way I/O778351 -Ref: Two-way I/O-Footnote-1783295 -Ref: Two-way I/O-Footnote-2783474 -Node: TCP/IP Networking783556 -Node: Profiling786401 -Node: Advanced Features Summary793952 -Node: Internationalization795816 -Node: I18N and L10N797296 -Node: Explaining gettext797982 -Ref: Explaining gettext-Footnote-1803122 -Ref: Explaining gettext-Footnote-2803306 -Node: Programmer i18n803471 -Node: Translator i18n807696 -Node: String Extraction808490 -Ref: String Extraction-Footnote-1809451 -Node: Printf Ordering809537 -Ref: Printf Ordering-Footnote-1812319 -Node: I18N Portability812383 -Ref: I18N Portability-Footnote-1814832 -Node: I18N Example814895 -Ref: I18N Example-Footnote-1817617 -Node: Gawk I18N817689 -Node: I18N Summary818327 -Node: Debugger819666 -Node: Debugging820688 -Node: Debugging Concepts821129 -Node: Debugging Terms822985 -Node: Awk Debugging825582 -Node: Sample Debugging Session826474 -Node: Debugger Invocation826994 -Node: Finding The Bug828327 -Node: List of Debugger Commands834809 -Node: Breakpoint Control836141 -Node: Debugger Execution Control839805 -Node: Viewing And Changing Data843165 -Node: Execution Stack846523 -Node: Debugger Info848036 -Node: Miscellaneous Debugger Commands852030 -Node: Readline Support857214 -Node: Limitations858106 -Node: Debugging Summary860380 -Node: Arbitrary Precision Arithmetic861544 -Node: Computer Arithmetic863031 -Ref: Computer Arithmetic-Footnote-1867418 -Node: Math Definitions867475 -Ref: table-ieee-formats870764 -Ref: Math Definitions-Footnote-1871304 -Node: MPFR features871407 -Node: FP Math Caution873049 -Ref: FP Math Caution-Footnote-1874101 -Node: Inexactness of computations874470 -Node: Inexact representation875418 -Node: Comparing FP Values876773 -Node: Errors accumulate877737 -Node: Getting Accuracy879170 -Node: Try To Round881829 -Node: Setting precision882728 -Ref: table-predefined-precision-strings883410 -Node: Setting the rounding mode885203 -Ref: table-gawk-rounding-modes885567 -Ref: Setting the rounding mode-Footnote-1889021 -Node: Arbitrary Precision Integers889200 -Ref: Arbitrary Precision Integers-Footnote-1892995 -Node: POSIX Floating Point Problems893144 -Ref: POSIX Floating Point Problems-Footnote-1897020 -Node: Floating point summary897058 -Node: Dynamic Extensions899281 -Node: Extension Intro900833 -Node: Plugin License902098 -Node: Extension Mechanism Outline902783 -Ref: figure-load-extension903207 -Ref: figure-load-new-function904692 -Ref: figure-call-new-function905694 -Node: Extension API Description907678 -Node: Extension API Functions Introduction909128 -Node: General Data Types913993 -Ref: General Data Types-Footnote-1919686 -Node: Requesting Values919985 -Ref: table-value-types-returned920722 -Node: Memory Allocation Functions921680 -Ref: Memory Allocation Functions-Footnote-1924427 -Node: Constructor Functions924523 -Node: Registration Functions926281 -Node: Extension Functions926966 -Node: Exit Callback Functions929268 -Node: Extension Version String930517 -Node: Input Parsers931167 -Node: Output Wrappers940981 -Node: Two-way processors945497 -Node: Printing Messages947701 -Ref: Printing Messages-Footnote-1948778 -Node: Updating `ERRNO'948930 -Node: Accessing Parameters949669 -Node: Symbol Table Access950899 -Node: Symbol table by name951413 -Node: Symbol table by cookie953389 -Ref: Symbol table by cookie-Footnote-1957522 -Node: Cached values957585 -Ref: Cached values-Footnote-1961089 -Node: Array Manipulation961180 -Ref: Array Manipulation-Footnote-1962278 -Node: Array Data Types962317 -Ref: Array Data Types-Footnote-1965020 -Node: Array Functions965112 -Node: Flattening Arrays968986 -Node: Creating Arrays975838 -Node: Extension API Variables980569 -Node: Extension Versioning981205 -Node: Extension API Informational Variables983106 -Node: Extension API Boilerplate984192 -Node: Finding Extensions987996 -Node: Extension Example988556 -Node: Internal File Description989286 -Node: Internal File Ops993377 -Ref: Internal File Ops-Footnote-11004809 -Node: Using Internal File Ops1004949 -Ref: Using Internal File Ops-Footnote-11007296 -Node: Extension Samples1007564 -Node: Extension Sample File Functions1009088 -Node: Extension Sample Fnmatch1016656 -Node: Extension Sample Fork1018138 -Node: Extension Sample Inplace1019351 -Node: Extension Sample Ord1021026 -Node: Extension Sample Readdir1021862 -Ref: table-readdir-file-types1022718 -Node: Extension Sample Revout1023517 -Node: Extension Sample Rev2way1024108 -Node: Extension Sample Read write array1024849 -Node: Extension Sample Readfile1026728 -Node: Extension Sample API Tests1027828 -Node: Extension Sample Time1028353 -Node: gawkextlib1029668 -Node: Extension summary1032481 -Node: Extension Exercises1036174 -Node: Language History1036896 -Node: V7/SVR3.11038539 -Node: SVR41040859 -Node: POSIX1042301 -Node: BTL1043687 -Node: POSIX/GNU1044421 -Node: Feature History1050164 -Node: Common Extensions1063294 -Node: Ranges and Locales1064606 -Ref: Ranges and Locales-Footnote-11069223 -Ref: Ranges and Locales-Footnote-21069250 -Ref: Ranges and Locales-Footnote-31069484 -Node: Contributors1069705 -Node: History summary1075130 -Node: Installation1076499 -Node: Gawk Distribution1077450 -Node: Getting1077934 -Node: Extracting1078758 -Node: Distribution contents1080400 -Node: Unix Installation1086170 -Node: Quick Installation1086787 -Node: Additional Configuration Options1089229 -Node: Configuration Philosophy1090967 -Node: Non-Unix Installation1093318 -Node: PC Installation1093776 -Node: PC Binary Installation1095087 -Node: PC Compiling1096935 -Ref: PC Compiling-Footnote-11099934 -Node: PC Testing1100039 -Node: PC Using1101215 -Node: Cygwin1105373 -Node: MSYS1106182 -Node: VMS Installation1106696 -Node: VMS Compilation1107492 -Ref: VMS Compilation-Footnote-11108714 -Node: VMS Dynamic Extensions1108772 -Node: VMS Installation Details1110145 -Node: VMS Running1112397 -Node: VMS GNV1115231 -Node: VMS Old Gawk1115954 -Node: Bugs1116424 -Node: Other Versions1120428 -Node: Installation summary1126683 -Node: Notes1127739 -Node: Compatibility Mode1128604 -Node: Additions1129386 -Node: Accessing The Source1130311 -Node: Adding Code1131747 -Node: New Ports1137925 -Node: Derived Files1142406 -Ref: Derived Files-Footnote-11147487 -Ref: Derived Files-Footnote-21147521 -Ref: Derived Files-Footnote-31148117 -Node: Future Extensions1148231 -Node: Implementation Limitations1148837 -Node: Extension Design1150085 -Node: Old Extension Problems1151239 -Ref: Old Extension Problems-Footnote-11152756 -Node: Extension New Mechanism Goals1152813 -Ref: Extension New Mechanism Goals-Footnote-11156173 -Node: Extension Other Design Decisions1156362 -Node: Extension Future Growth1158468 -Node: Old Extension Mechanism1159304 -Node: Notes summary1161066 -Node: Basic Concepts1162252 -Node: Basic High Level1162933 -Ref: figure-general-flow1163205 -Ref: figure-process-flow1163804 -Ref: Basic High Level-Footnote-11167033 -Node: Basic Data Typing1167218 -Node: Glossary1170546 -Node: Copying1195698 -Node: GNU Free Documentation License1233254 -Node: Index1258390 +Ref: Preface-Footnote-149226 +Ref: Preface-Footnote-249333 +Node: History49565 +Node: Names51939 +Ref: Names-Footnote-153403 +Node: This Manual53476 +Ref: This Manual-Footnote-159255 +Node: Conventions59355 +Node: Manual History61511 +Ref: Manual History-Footnote-164587 +Ref: Manual History-Footnote-264628 +Node: How To Contribute64702 +Node: Acknowledgments65941 +Node: Getting Started70689 +Node: Running gawk73123 +Node: One-shot74313 +Node: Read Terminal75538 +Ref: Read Terminal-Footnote-177501 +Node: Long77672 +Node: Executable Scripts79048 +Ref: Executable Scripts-Footnote-180881 +Ref: Executable Scripts-Footnote-280983 +Node: Comments81530 +Node: Quoting84003 +Node: DOS Quoting89316 +Node: Sample Data Files89991 +Node: Very Simple92545 +Node: Two Rules97318 +Node: More Complex99212 +Ref: More Complex-Footnote-1102144 +Node: Statements/Lines102229 +Ref: Statements/Lines-Footnote-1106685 +Node: Other Features106950 +Node: When107878 +Ref: When-Footnote-1109764 +Node: Intro Summary109829 +Node: Invoking Gawk110595 +Node: Command Line112110 +Node: Options112901 +Ref: Options-Footnote-1128570 +Node: Other Arguments128595 +Node: Naming Standard Input131257 +Node: Environment Variables132350 +Node: AWKPATH Variable132908 +Ref: AWKPATH Variable-Footnote-1135774 +Ref: AWKPATH Variable-Footnote-2135819 +Node: AWKLIBPATH Variable136079 +Node: Other Environment Variables136838 +Node: Exit Status140290 +Node: Include Files140965 +Node: Loading Shared Libraries144543 +Node: Obsolete145927 +Node: Undocumented146624 +Node: Invoking Summary146891 +Node: Regexp148491 +Node: Regexp Usage149941 +Node: Escape Sequences151974 +Node: Regexp Operators157805 +Ref: Regexp Operators-Footnote-1165285 +Ref: Regexp Operators-Footnote-2165432 +Node: Bracket Expressions165530 +Ref: table-char-classes167420 +Node: GNU Regexp Operators170360 +Node: Case-sensitivity174083 +Ref: Case-sensitivity-Footnote-1176975 +Ref: Case-sensitivity-Footnote-2177210 +Node: Leftmost Longest177318 +Node: Computed Regexps178519 +Node: Regexp Summary181891 +Node: Reading Files183360 +Node: Records185452 +Node: awk split records186195 +Node: gawk split records191053 +Ref: gawk split records-Footnote-1195574 +Node: Fields195611 +Ref: Fields-Footnote-1198575 +Node: Nonconstant Fields198661 +Ref: Nonconstant Fields-Footnote-1200891 +Node: Changing Fields201093 +Node: Field Separators207047 +Node: Default Field Splitting209749 +Node: Regexp Field Splitting210866 +Node: Single Character Fields214207 +Node: Command Line Field Separator215266 +Node: Full Line Fields218692 +Ref: Full Line Fields-Footnote-1219200 +Node: Field Splitting Summary219246 +Ref: Field Splitting Summary-Footnote-1222378 +Node: Constant Size222479 +Node: Splitting By Content227085 +Ref: Splitting By Content-Footnote-1231158 +Node: Multiple Line231198 +Ref: Multiple Line-Footnote-1237054 +Node: Getline237233 +Node: Plain Getline239449 +Node: Getline/Variable241544 +Node: Getline/File242691 +Node: Getline/Variable/File244075 +Ref: Getline/Variable/File-Footnote-1245674 +Node: Getline/Pipe245761 +Node: Getline/Variable/Pipe248460 +Node: Getline/Coprocess249567 +Node: Getline/Variable/Coprocess250819 +Node: Getline Notes251556 +Node: Getline Summary254360 +Ref: table-getline-variants254768 +Node: Read Timeout255680 +Ref: Read Timeout-Footnote-1259507 +Node: Command-line directories259565 +Node: Input Summary260469 +Node: Input Exercises263606 +Node: Printing264339 +Node: Print266061 +Node: Print Examples267402 +Node: Output Separators270181 +Node: OFMT272197 +Node: Printf273555 +Node: Basic Printf274461 +Node: Control Letters276000 +Node: Format Modifiers279991 +Node: Printf Examples286018 +Node: Redirection288482 +Node: Special Files295454 +Node: Special FD295987 +Ref: Special FD-Footnote-1299584 +Node: Special Network299658 +Node: Special Caveats300508 +Node: Close Files And Pipes301304 +Ref: Close Files And Pipes-Footnote-1308465 +Ref: Close Files And Pipes-Footnote-2308613 +Node: Output Summary308763 +Node: Output exercises309760 +Node: Expressions310440 +Node: Values311625 +Node: Constants312301 +Node: Scalar Constants312981 +Ref: Scalar Constants-Footnote-1313840 +Node: Nondecimal-numbers314090 +Node: Regexp Constants317090 +Node: Using Constant Regexps317565 +Node: Variables320637 +Node: Using Variables321292 +Node: Assignment Options323016 +Node: Conversion324891 +Node: Strings And Numbers325415 +Ref: Strings And Numbers-Footnote-1328477 +Node: Locale influences conversions328586 +Ref: table-locale-affects331303 +Node: All Operators331891 +Node: Arithmetic Ops332521 +Node: Concatenation335026 +Ref: Concatenation-Footnote-1337845 +Node: Assignment Ops337965 +Ref: table-assign-ops342948 +Node: Increment Ops344265 +Node: Truth Values and Conditions347703 +Node: Truth Values348786 +Node: Typing and Comparison349835 +Node: Variable Typing350628 +Node: Comparison Operators354280 +Ref: table-relational-ops354690 +Node: POSIX String Comparison358240 +Ref: POSIX String Comparison-Footnote-1359324 +Node: Boolean Ops359462 +Ref: Boolean Ops-Footnote-1363532 +Node: Conditional Exp363623 +Node: Function Calls365350 +Node: Precedence369230 +Node: Locales372899 +Node: Expressions Summary374530 +Node: Patterns and Actions377071 +Node: Pattern Overview378187 +Node: Regexp Patterns379864 +Node: Expression Patterns380407 +Node: Ranges384188 +Node: BEGIN/END387294 +Node: Using BEGIN/END388056 +Ref: Using BEGIN/END-Footnote-1390792 +Node: I/O And BEGIN/END390898 +Node: BEGINFILE/ENDFILE393183 +Node: Empty396114 +Node: Using Shell Variables396431 +Node: Action Overview398714 +Node: Statements401041 +Node: If Statement402889 +Node: While Statement404387 +Node: Do Statement406431 +Node: For Statement407587 +Node: Switch Statement410739 +Node: Break Statement413127 +Node: Continue Statement415182 +Node: Next Statement417021 +Node: Nextfile Statement419411 +Node: Exit Statement422066 +Node: Built-in Variables424470 +Node: User-modified425597 +Ref: User-modified-Footnote-1433286 +Node: Auto-set433348 +Ref: Auto-set-Footnote-1446267 +Ref: Auto-set-Footnote-2446472 +Node: ARGC and ARGV446528 +Node: Pattern Action Summary450432 +Node: Arrays452655 +Node: Array Basics454204 +Node: Array Intro455030 +Ref: figure-array-elements457003 +Node: Reference to Elements459410 +Node: Assigning Elements461789 +Node: Array Example462280 +Node: Scanning an Array464012 +Node: Controlling Scanning467027 +Ref: Controlling Scanning-Footnote-1472200 +Node: Delete472516 +Ref: Delete-Footnote-1475281 +Node: Numeric Array Subscripts475338 +Node: Uninitialized Subscripts477521 +Node: Multidimensional479146 +Node: Multiscanning482259 +Node: Arrays of Arrays483848 +Node: Arrays Summary488511 +Node: Functions490616 +Node: Built-in491489 +Node: Calling Built-in492567 +Node: Numeric Functions494555 +Ref: Numeric Functions-Footnote-1499391 +Ref: Numeric Functions-Footnote-2499748 +Ref: Numeric Functions-Footnote-3499796 +Node: String Functions500065 +Ref: String Functions-Footnote-1523076 +Ref: String Functions-Footnote-2523205 +Ref: String Functions-Footnote-3523453 +Node: Gory Details523540 +Ref: table-sub-escapes525327 +Ref: table-sub-proposed526847 +Ref: table-posix-sub528211 +Ref: table-gensub-escapes529751 +Ref: Gory Details-Footnote-1530927 +Node: I/O Functions531078 +Ref: I/O Functions-Footnote-1538201 +Node: Time Functions538348 +Ref: Time Functions-Footnote-1548812 +Ref: Time Functions-Footnote-2548880 +Ref: Time Functions-Footnote-3549038 +Ref: Time Functions-Footnote-4549149 +Ref: Time Functions-Footnote-5549261 +Ref: Time Functions-Footnote-6549488 +Node: Bitwise Functions549754 +Ref: table-bitwise-ops550316 +Ref: Bitwise Functions-Footnote-1554561 +Node: Type Functions554745 +Node: I18N Functions555887 +Node: User-defined557532 +Node: Definition Syntax558336 +Ref: Definition Syntax-Footnote-1563515 +Node: Function Example563584 +Ref: Function Example-Footnote-1566224 +Node: Function Caveats566246 +Node: Calling A Function566764 +Node: Variable Scope567719 +Node: Pass By Value/Reference570707 +Node: Return Statement574217 +Node: Dynamic Typing577201 +Node: Indirect Calls578130 +Node: Functions Summary587843 +Node: Library Functions590382 +Ref: Library Functions-Footnote-1594000 +Ref: Library Functions-Footnote-2594143 +Node: Library Names594314 +Ref: Library Names-Footnote-1597787 +Ref: Library Names-Footnote-2598007 +Node: General Functions598093 +Node: Strtonum Function599121 +Node: Assert Function601901 +Node: Round Function605227 +Node: Cliff Random Function606768 +Node: Ordinal Functions607784 +Ref: Ordinal Functions-Footnote-1610861 +Ref: Ordinal Functions-Footnote-2611113 +Node: Join Function611324 +Ref: Join Function-Footnote-1613095 +Node: Getlocaltime Function613295 +Node: Readfile Function617031 +Node: Data File Management618870 +Node: Filetrans Function619502 +Node: Rewind Function623571 +Node: File Checking625129 +Ref: File Checking-Footnote-1626261 +Node: Empty Files626462 +Node: Ignoring Assigns628441 +Node: Getopt Function629995 +Ref: Getopt Function-Footnote-1641298 +Node: Passwd Functions641501 +Ref: Passwd Functions-Footnote-1650480 +Node: Group Functions650568 +Ref: Group Functions-Footnote-1658509 +Node: Walking Arrays658722 +Node: Library Functions Summary660325 +Node: Library exercises661713 +Node: Sample Programs662993 +Node: Running Examples663763 +Node: Clones664491 +Node: Cut Program665715 +Node: Egrep Program675583 +Ref: Egrep Program-Footnote-1683554 +Node: Id Program683664 +Node: Split Program687328 +Ref: Split Program-Footnote-1690866 +Node: Tee Program690994 +Node: Uniq Program693801 +Node: Wc Program701231 +Ref: Wc Program-Footnote-1705496 +Node: Miscellaneous Programs705588 +Node: Dupword Program706801 +Node: Alarm Program708832 +Node: Translate Program713646 +Ref: Translate Program-Footnote-1718037 +Ref: Translate Program-Footnote-2718307 +Node: Labels Program718441 +Ref: Labels Program-Footnote-1721812 +Node: Word Sorting721896 +Node: History Sorting725939 +Node: Extract Program727775 +Node: Simple Sed735311 +Node: Igawk Program738373 +Ref: Igawk Program-Footnote-1752677 +Ref: Igawk Program-Footnote-2752878 +Node: Anagram Program753016 +Node: Signature Program756084 +Node: Programs Summary757331 +Node: Programs Exercises758546 +Node: Advanced Features762197 +Node: Nondecimal Data764145 +Node: Array Sorting765722 +Node: Controlling Array Traversal766419 +Node: Array Sorting Functions774699 +Ref: Array Sorting Functions-Footnote-1778606 +Node: Two-way I/O778800 +Ref: Two-way I/O-Footnote-1783744 +Ref: Two-way I/O-Footnote-2783923 +Node: TCP/IP Networking784005 +Node: Profiling786850 +Node: Advanced Features Summary794401 +Node: Internationalization796265 +Node: I18N and L10N797745 +Node: Explaining gettext798431 +Ref: Explaining gettext-Footnote-1803571 +Ref: Explaining gettext-Footnote-2803755 +Node: Programmer i18n803920 +Node: Translator i18n808145 +Node: String Extraction808939 +Ref: String Extraction-Footnote-1809900 +Node: Printf Ordering809986 +Ref: Printf Ordering-Footnote-1812768 +Node: I18N Portability812832 +Ref: I18N Portability-Footnote-1815281 +Node: I18N Example815344 +Ref: I18N Example-Footnote-1818066 +Node: Gawk I18N818138 +Node: I18N Summary818776 +Node: Debugger820115 +Node: Debugging821137 +Node: Debugging Concepts821578 +Node: Debugging Terms823434 +Node: Awk Debugging826031 +Node: Sample Debugging Session826923 +Node: Debugger Invocation827443 +Node: Finding The Bug828776 +Node: List of Debugger Commands835258 +Node: Breakpoint Control836590 +Node: Debugger Execution Control840254 +Node: Viewing And Changing Data843614 +Node: Execution Stack846972 +Node: Debugger Info848485 +Node: Miscellaneous Debugger Commands852479 +Node: Readline Support857663 +Node: Limitations858555 +Node: Debugging Summary860829 +Node: Arbitrary Precision Arithmetic861997 +Node: Computer Arithmetic863484 +Ref: Computer Arithmetic-Footnote-1867871 +Node: Math Definitions867928 +Ref: table-ieee-formats871217 +Ref: Math Definitions-Footnote-1871757 +Node: MPFR features871860 +Node: FP Math Caution873477 +Ref: FP Math Caution-Footnote-1874527 +Node: Inexactness of computations874896 +Node: Inexact representation875844 +Node: Comparing FP Values877199 +Node: Errors accumulate878163 +Node: Getting Accuracy879596 +Node: Try To Round882255 +Node: Setting precision883154 +Ref: table-predefined-precision-strings883836 +Node: Setting the rounding mode885629 +Ref: table-gawk-rounding-modes885993 +Ref: Setting the rounding mode-Footnote-1889447 +Node: Arbitrary Precision Integers889626 +Ref: Arbitrary Precision Integers-Footnote-1893399 +Node: POSIX Floating Point Problems893548 +Ref: POSIX Floating Point Problems-Footnote-1897424 +Node: Floating point summary897462 +Node: Dynamic Extensions899666 +Node: Extension Intro901218 +Node: Plugin License902483 +Node: Extension Mechanism Outline903168 +Ref: figure-load-extension903592 +Ref: figure-load-new-function905077 +Ref: figure-call-new-function906079 +Node: Extension API Description908063 +Node: Extension API Functions Introduction909513 +Node: General Data Types914380 +Ref: General Data Types-Footnote-1920073 +Node: Requesting Values920372 +Ref: table-value-types-returned921109 +Node: Memory Allocation Functions922067 +Ref: Memory Allocation Functions-Footnote-1924814 +Node: Constructor Functions924910 +Node: Registration Functions926668 +Node: Extension Functions927353 +Node: Exit Callback Functions929655 +Node: Extension Version String930903 +Node: Input Parsers931553 +Node: Output Wrappers941367 +Node: Two-way processors945883 +Node: Printing Messages948087 +Ref: Printing Messages-Footnote-1949164 +Node: Updating `ERRNO'949316 +Node: Accessing Parameters950055 +Node: Symbol Table Access951285 +Node: Symbol table by name951799 +Node: Symbol table by cookie953775 +Ref: Symbol table by cookie-Footnote-1957908 +Node: Cached values957971 +Ref: Cached values-Footnote-1961475 +Node: Array Manipulation961566 +Ref: Array Manipulation-Footnote-1962664 +Node: Array Data Types962703 +Ref: Array Data Types-Footnote-1965406 +Node: Array Functions965498 +Node: Flattening Arrays969372 +Node: Creating Arrays976224 +Node: Extension API Variables980955 +Node: Extension Versioning981591 +Node: Extension API Informational Variables983492 +Node: Extension API Boilerplate984578 +Node: Finding Extensions988382 +Node: Extension Example988942 +Node: Internal File Description989672 +Node: Internal File Ops993763 +Ref: Internal File Ops-Footnote-11005195 +Node: Using Internal File Ops1005335 +Ref: Using Internal File Ops-Footnote-11007682 +Node: Extension Samples1007950 +Node: Extension Sample File Functions1009474 +Node: Extension Sample Fnmatch1017042 +Node: Extension Sample Fork1018524 +Node: Extension Sample Inplace1019737 +Node: Extension Sample Ord1021412 +Node: Extension Sample Readdir1022248 +Ref: table-readdir-file-types1023104 +Node: Extension Sample Revout1023903 +Node: Extension Sample Rev2way1024494 +Node: Extension Sample Read write array1025235 +Node: Extension Sample Readfile1027114 +Node: Extension Sample API Tests1028214 +Node: Extension Sample Time1028739 +Node: gawkextlib1030054 +Node: Extension summary1032867 +Node: Extension Exercises1036560 +Node: Language History1037282 +Node: V7/SVR3.11038925 +Node: SVR41041245 +Node: POSIX1042687 +Node: BTL1044073 +Node: POSIX/GNU1044807 +Node: Feature History1050548 +Node: Common Extensions1063678 +Node: Ranges and Locales1064990 +Ref: Ranges and Locales-Footnote-11069607 +Ref: Ranges and Locales-Footnote-21069634 +Ref: Ranges and Locales-Footnote-31069868 +Node: Contributors1070089 +Node: History summary1075514 +Node: Installation1076883 +Node: Gawk Distribution1077834 +Node: Getting1078318 +Node: Extracting1079142 +Node: Distribution contents1080784 +Node: Unix Installation1086554 +Node: Quick Installation1087171 +Node: Additional Configuration Options1089613 +Node: Configuration Philosophy1091351 +Node: Non-Unix Installation1093702 +Node: PC Installation1094160 +Node: PC Binary Installation1095471 +Node: PC Compiling1097319 +Ref: PC Compiling-Footnote-11100318 +Node: PC Testing1100423 +Node: PC Using1101599 +Node: Cygwin1105751 +Node: MSYS1106560 +Node: VMS Installation1107074 +Node: VMS Compilation1107870 +Ref: VMS Compilation-Footnote-11109092 +Node: VMS Dynamic Extensions1109150 +Node: VMS Installation Details1110523 +Node: VMS Running1112775 +Node: VMS GNV1115609 +Node: VMS Old Gawk1116332 +Node: Bugs1116802 +Node: Other Versions1120806 +Node: Installation summary1127061 +Node: Notes1128117 +Node: Compatibility Mode1128982 +Node: Additions1129764 +Node: Accessing The Source1130689 +Node: Adding Code1132125 +Node: New Ports1138303 +Node: Derived Files1142784 +Ref: Derived Files-Footnote-11147865 +Ref: Derived Files-Footnote-21147899 +Ref: Derived Files-Footnote-31148495 +Node: Future Extensions1148609 +Node: Implementation Limitations1149215 +Node: Extension Design1150463 +Node: Old Extension Problems1151617 +Ref: Old Extension Problems-Footnote-11153134 +Node: Extension New Mechanism Goals1153191 +Ref: Extension New Mechanism Goals-Footnote-11156551 +Node: Extension Other Design Decisions1156740 +Node: Extension Future Growth1158846 +Node: Old Extension Mechanism1159682 +Node: Notes summary1161444 +Node: Basic Concepts1162630 +Node: Basic High Level1163311 +Ref: figure-general-flow1163583 +Ref: figure-process-flow1164182 +Ref: Basic High Level-Footnote-11167411 +Node: Basic Data Typing1167596 +Node: Glossary1170924 +Node: Copying1196076 +Node: GNU Free Documentation License1233632 +Node: Index1258768 End Tag Table |