diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1353 |
1 files changed, 676 insertions, 677 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 16c76d2e..2eb590d0 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -1,4 +1,4 @@ -This is gawk.info, produced by makeinfo version 6.0dev from gawk.texi. +This is gawk.info, produced by makeinfo version 6.1 from gawk.texi. Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2015 Free Software Foundation, Inc. @@ -944,8 +944,8 @@ the 'gawk' distribution). His code finally became part of the main 'awk'-level debugger. This version became available as 'gawk' version 4.0 in 2011. - *Note Contributors::, for a full list of those who have made -important contributions to 'gawk'. + *Note Contributors:: for a full list of those who have made important +contributions to 'gawk'. File: gawk.info, Node: Names, Next: This Manual, Prev: History, Up: Preface @@ -1159,7 +1159,7 @@ by first pressing and holding the 'CONTROL' key, next pressing the 'd' key, and finally releasing both keys. For the sake of brevity, throughout this Info file, we refer to Brian -Kernighan's version of 'awk' as "BWK 'awk'." (*Note Other Versions::, +Kernighan's version of 'awk' as "BWK 'awk'." (*Note Other Versions:: for information on his and other versions.) Dark Corners @@ -1238,7 +1238,7 @@ the major new additions are *note Arbitrary Precision Arithmetic::, and *note Dynamic Extensions::. This Info file will undoubtedly continue to evolve. If you find an -error in the Info file, please report it! *Note Bugs::, for information +error in the Info file, please report it! *Note Bugs:: for information on submitting problem reports electronically. ---------- Footnotes ---------- @@ -1345,7 +1345,7 @@ has been and continues to be a pleasure working with this team of fine people. Notable code and documentation contributions were made by a number of -people. *Note Contributors::, for the full list. +people. *Note Contributors:: for the full list. Thanks to Michael Brennan for the Forewords. @@ -1765,7 +1765,7 @@ the quoting rules: quotes. The shell does no interpretation of the quoted text, passing it on verbatim to the command. It is _impossible_ to embed a single quote inside single-quoted text. Refer back to *note - Comments::, for an example of what happens if you try. + Comments:: for an example of what happens if you try. * Double quotes protect most things between the opening and closing quotes. The shell does at least variable and command substitution @@ -2064,7 +2064,7 @@ then several actions execute in the order in which they appear in the 'awk' program. If no patterns match, then no actions run. After processing all the rules that match the line (and perhaps there -are none), 'awk' reads the next line. (However, *note Next Statement::, +are none), 'awk' reads the next line. (However, *note Next Statement:: and also *note Nextfile Statement::.) This continues until the program reaches the end of the file. For example, the following 'awk' program contains two rules: @@ -2284,7 +2284,7 @@ determining the type of a variable, and array sorting. As we develop our presentation of the 'awk' language, we will introduce most of the variables and many of the functions. They are -described systematically in *note Built-in Variables::, and in *note +described systematically in *note Built-in Variables:: and in *note Built-in::. @@ -2666,9 +2666,9 @@ The following list describes options mandated by the POSIX standard: '--posix' Operate in strict POSIX mode. This disables all 'gawk' extensions (just like '--traditional') and disables all extensions not allowed - by POSIX. *Note Common Extensions::, for a summary of the - extensions in 'gawk' that are disabled by this option. Also, the - following additional restrictions apply: + by POSIX. *Note Common Extensions:: for a summary of the extensions + in 'gawk' that are disabled by this option. Also, the following + additional restrictions apply: * Newlines are not allowed after '?' or ':' (*note Conditional Exp::). @@ -3486,7 +3486,7 @@ with a backslash have special meaning in regexps. *Note GNU Regexp Operators::. In a regexp, a backslash before any character that is not in the -previous list and not listed in *note GNU Regexp Operators::, means that +previous list and not listed in *note GNU Regexp Operators:: means that the next character should be taken literally, even if it would normally be a regexp operator. For example, '/a\+b/' matches the three characters 'a+b'. @@ -3548,7 +3548,7 @@ You can combine regular expressions with special characters, called "regular expression operators" or "metacharacters", to increase the power and versatility of regular expressions. - The escape sequences described in *note Escape Sequences::, are valid + The escape sequences described in *note Escape Sequences:: are valid inside a regexp. They are introduced by a '\' and are recognized and converted into corresponding real characters as the very first step in processing regexps. @@ -3728,7 +3728,7 @@ those listed between the opening and closing square brackets. characters separated by a hyphen. It matches any single character that sorts between the two characters, based upon the system's native character set. For example, '[0-9]' is equivalent to '[0123456789]'. -(See *note Ranges and Locales::, for an explanation of how the POSIX +(See *note Ranges and Locales:: for an explanation of how the POSIX standard and 'gawk' have changed over time. This is mainly of historical interest.) @@ -4390,7 +4390,7 @@ record, even if the last character in the file is not the character in The empty string '""' (a string without any characters) has a special meaning as the value of 'RS'. It means that records are separated by -one or more blank lines and nothing else. *Note Multiple Line::, for +one or more blank lines and nothing else. *Note Multiple Line:: for more details. If you change the value of 'RS' in the middle of an 'awk' run, the @@ -4440,7 +4440,7 @@ trailing whitespace: The square brackets delineate the contents of 'RT', letting you see the leading and trailing whitespace. The final value of 'RT' is a newline. -*Note Simple Sed::, for a more useful example of 'RS' as a regexp and +*Note Simple Sed:: for a more useful example of 'RS' as a regexp and 'RT'. If you set 'RS' to a regular expression that allows optional trailing @@ -4493,9 +4493,9 @@ as a record separator. However, this is a special case: 'mawk' does not allow embedded NUL characters in strings. (This may change in a future version of 'mawk'.) - *Note Readfile Function::, for an interesting way to read whole -files. If you are using 'gawk', see *note Extension Sample Readfile::, -for another option. + *Note Readfile Function:: for an interesting way to read whole files. +If you are using 'gawk', see *note Extension Sample Readfile:: for +another option. ---------- Footnotes ---------- @@ -4694,8 +4694,8 @@ out-of-range field only produces an empty string. For example: print "everything is normal" should print 'everything is normal', because 'NF+1' is certain to be out -of range. (*Note If Statement::, for more information about 'awk''s -'if-else' statements. *Note Typing and Comparison::, for more +of range. (*Note If Statement:: for more information about 'awk''s +'if-else' statements. *Note Typing and Comparison:: for more information about the '!=' operator.) It is important to note that making an assignment to an existing @@ -5233,7 +5233,7 @@ value is '"FS"' if regular field splitting is being used, or This information is useful when writing a function that needs to temporarily change 'FS' or 'FIELDWIDTHS', read some records, and then -restore the original settings (*note Passwd Functions::, for an example +restore the original settings (*note Passwd Functions:: for an example of such a function). @@ -5447,7 +5447,7 @@ A simple program to process this file is as follows: -| ... - *Note Labels Program::, for a more realistic program dealing with + *Note Labels Program:: for a more realistic program dealing with address lists. The following list summarizes how records are split, based on the value of 'RS'. ('==' means "is equal to.") @@ -5511,7 +5511,7 @@ the error that occurred. If 'ERRNO' indicates that the I/O operation may be retried, and 'PROCINFO["INPUT", "RETRY"]' is set, then 'getline' returns -2 instead of -1, and further calls to 'getline' may be attemped. *Note Retrying -Input::, for further information about this feature. +Input:: for further information about this feature. In the following examples, COMMAND stands for a string value that represents a shell command. @@ -5706,7 +5706,7 @@ included twice. *Note Close Files And Pipes::. One deficiency of this program is that it does not process nested '@include' statements (i.e., '@include' statements in included files) -the way a true macro preprocessor would. *Note Igawk Program::, for a +the way a true macro preprocessor would. *Note Igawk Program:: for a program that does handle nested '@include' statements. ---------- Footnotes ---------- @@ -6028,7 +6028,7 @@ per-command or per-connection basis. attempt to read from the underlying device may succeed in a later attempt. This is a limitation, and it also means that you cannot use this to multiplex input from two or more sources. *Note Retrying -Input::, for a way to enable later I/O attempts to succeed. +Input:: for a way to enable later I/O attempts to succeed. Assigning a timeout value prevents read operations from blocking indefinitely. But bear in mind that there are other ways 'gawk' can @@ -6088,7 +6088,7 @@ wildcards with your 'awk' program: 'gawk' reverts to treating a directory on the command line as a fatal error. - *Note Extension Sample Readdir::, for a way to treat directories as + *Note Extension Sample Readdir:: for a way to treat directories as usable data from an 'awk' program. @@ -6193,7 +6193,7 @@ and the 'printf' statement for fancier formatting. The 'print' statement is not limited when computing _which_ values to print. However, with two exceptions, you cannot specify _how_ to print them--how many columns, whether to use exponential notation or not, and -so on. (For the exceptions, *note Output Separators::, and *note +so on. (For the exceptions, *note Output Separators:: and *note OFMT::.) For printing with specifications, you need the 'printf' statement (*note Printf::). @@ -6898,7 +6898,7 @@ work identically for 'printf': The 'close()' function is called here because it's a good idea to close the pipe as soon as all the intended output has been sent to - it. *Note Close Files And Pipes::, for more information. + it. *Note Close Files And Pipes:: for more information. This example also illustrates the use of a variable to represent a FILE or COMMAND--it is not necessary to always use a string @@ -6961,7 +6961,7 @@ uppercase characters converted to lowercase (*note String Functions::). The program builds up a list of command lines, using the 'mv' utility to rename the files. It then sends the list to the shell for execution. - *Note Shell Quoting::, for a function that can help in generating + *Note Shell Quoting:: for a function that can help in generating command lines to be fed to the shell. @@ -7550,7 +7550,7 @@ option; *note Nondecimal Data::.) If you have octal or hexadecimal data, you can use the 'strtonum()' function (*note String Functions::) to convert the data into a number. Most of the time, you will want to use octal or hexadecimal constants when working with the built-in -bit-manipulation functions; see *note Bitwise Functions::, for more +bit-manipulation functions; see *note Bitwise Functions:: for more information. Unlike in some early C implementations, '8' and '9' are not valid in @@ -7709,7 +7709,7 @@ parameters (*note String Functions::). A few variables have special built-in meanings, such as 'FS' (the field separator) and 'NF' (the number of fields in the current input -record). *Note Built-in Variables::, for a list of the predefined +record). *Note Built-in Variables:: for a list of the predefined variables. These predefined variables can be used and assigned just like all other variables, but their values are also used or changed automatically by 'awk'. All predefined variables' names are entirely @@ -7742,7 +7742,7 @@ option, as in the following: the variable is set at the very beginning, even before the 'BEGIN' rules execute. The '-v' option and its assignment must precede all the file -name arguments, as well as the program text. (*Note Options::, for more +name arguments, as well as the program text. (*Note Options:: for more information about the '-v' option.) Otherwise, the variable assignment is performed at a time determined by its position among the input file arguments--after the processing of the preceding input file argument. @@ -7848,7 +7848,7 @@ use when printing numbers with 'print'. 'CONVFMT' was introduced in order to separate the semantics of conversion from the semantics of printing. Both 'CONVFMT' and 'OFMT' have the same default value: '"%.6g"'. In the vast majority of cases, old 'awk' programs do not -change their behavior. *Note Print::, for more information on the +change their behavior. *Note Print:: for more information on the 'print' statement. ---------- Footnotes ---------- @@ -8227,7 +8227,7 @@ expression. For example: The indices of 'bar' are practically guaranteed to be different, because 'rand()' returns different values each time it is called. (Arrays and the 'rand()' function haven't been covered yet. *Note Arrays::, and -*note Numeric Functions::, for more information.) This example +*note Numeric Functions:: for more information.) This example illustrates an important fact about assignment operators: the lefthand expression is only evaluated _once_. @@ -8824,9 +8824,9 @@ function 'sqrt()' computes the square root of a number. A fixed set of functions are "built in", which means they are available in every 'awk' program. The 'sqrt()' function is one of -these. *Note Built-in::, for a list of built-in functions and their +these. *Note Built-in:: for a list of built-in functions and their descriptions. In addition, you can define functions for use in your -program. *Note User-defined::, for instructions on how to do this. +program. *Note User-defined:: for instructions on how to do this. Finally, 'gawk' lets you write functions in C or C++ that may be called from your program (*note Dynamic Extensions::). @@ -8858,7 +8858,7 @@ of which to take the square root: Some of the built-in functions have one or more optional arguments. If those arguments are not supplied, the functions use a reasonable -default value. *Note Built-in::, for full details. If arguments are +default value. *Note Built-in:: for full details. If arguments are omitted in calls to user-defined functions, then those arguments are treated as local variables. Such local variables act like the empty string if referenced where a string value is required, and like zero if @@ -9393,7 +9393,7 @@ functions, because each library file can have its own 'BEGIN' and/or which library functions are named on the command line controls the order in which their 'BEGIN' and 'END' rules are executed. Therefore, you have to be careful when writing such rules in library files so that the -order in which they are executed doesn't matter. *Note Options::, for +order in which they are executed doesn't matter. *Note Options:: for more information on using library functions. *Note Library Functions::, for a number of useful library functions. @@ -9448,8 +9448,8 @@ explicitly. 'BEGIN' rule, because the implicit read-a-record-and-match-against-the-rules loop has not started yet. Similarly, those statements are not valid in an 'END' rule, because all -the input has been read. (*Note Next Statement::, and *note Nextfile -Statement::,.) +the input has been read. (*Note Next Statement:: and *note Nextfile +Statement::.) File: gawk.info, Node: BEGINFILE/ENDFILE, Next: Empty, Prev: BEGIN/END, Up: Pattern Overview @@ -9875,7 +9875,7 @@ all the indices of an array: for (i in array) DO SOMETHING WITH array[i] -*Note Scanning an Array::, for more information on this version of the +*Note Scanning an Array:: for more information on this version of the 'for' loop. @@ -10186,15 +10186,15 @@ execute. In such a case, if you don't want the 'END' rule to do its job, set a variable to a nonzero value before the 'exit' statement and check that -variable in the 'END' rule. *Note Assert Function::, for an example -that does this. +variable in the 'END' rule. *Note Assert Function:: for an example that +does this. If an argument is supplied to 'exit', its value is used as the exit status code for the 'awk' process. If no argument is supplied, 'exit' causes 'awk' to return a "success" status. In the case where an argument is supplied to a first 'exit' statement, and then 'exit' is called a second time from an 'END' rule with no argument, 'awk' uses the -previously supplied exit value. (d.c.) *Note Exit Status::, for more +previously supplied exit value. (d.c.) *Note Exit Status:: for more information. For example, suppose an error condition occurs that is difficult or @@ -10282,13 +10282,13 @@ each variable.) A space-separated list of columns that tells 'gawk' how to split input with fixed columnar boundaries. Assigning a value to 'FIELDWIDTHS' overrides the use of 'FS' and 'FPAT' for field - splitting. *Note Constant Size::, for more information. + splitting. *Note Constant Size:: for more information. 'FPAT #' A regular expression (as a string) that tells 'gawk' to create the fields based on text that matches the regular expression. Assigning a value to 'FPAT' overrides the use of 'FS' and - 'FIELDWIDTHS' for field splitting. *Note Splitting By Content::, + 'FIELDWIDTHS' for field splitting. *Note Splitting By Content:: for more information. 'FS' @@ -10441,8 +10441,8 @@ they are not special: The value of 'ARGV[0]' can vary from system to system. Also, you should note that the program text is _not_ included in 'ARGV', nor - are any of 'awk''s command-line options. *Note ARGC and ARGV::, - for information about how 'awk' uses these variables. (d.c.) + are any of 'awk''s command-line options. *Note ARGC and ARGV:: for + information about how 'awk' uses these variables. (d.c.) 'ARGIND #' The index in 'ARGV' of the current file being processed. Every @@ -10485,7 +10485,7 @@ they are not special: Some operating systems may not have environment variables. On such systems, the 'ENVIRON' array is empty (except for 'ENVIRON["AWKPATH"]' and 'ENVIRON["AWKLIBPATH"]'; *note AWKPATH - Variable::, and *note AWKLIBPATH Variable::). + Variable:: and *note AWKLIBPATH Variable::). 'ERRNO #' If a system error occurs during a redirection for 'getline', during @@ -10660,20 +10660,20 @@ they are not special: 'PROCINFO["NONFATAL"]' If this element exists, then I/O errors for all output - redirections become nonfatal. *Note Nonfatal::,. + redirections become nonfatal. *Note Nonfatal::. 'PROCINFO["OUTPUT_NAME", "NONFATAL"]' Make output errors for OUTPUT_NAME be nonfatal. *Note - Nonfatal::,. + Nonfatal::. 'PROCINFO["COMMAND", "pty"]' For two-way communication to COMMAND, use a pseudo-tty instead - of setting up a two-way pipe. *Note Two-way I/O::, for more + of setting up a two-way pipe. *Note Two-way I/O:: for more information. 'PROCINFO["INPUT_NAME", "READ_TIMEOUT"]' Set a timeout for reading from input redirection INPUT_NAME. - *Note Read Timeout::, for more information. + *Note Read Timeout:: for more information. 'PROCINFO["sorted_in"]' If this element exists in 'PROCINFO', its value controls the @@ -10778,7 +10778,7 @@ File: gawk.info, Node: ARGC and ARGV, Prev: Auto-set, Up: Built-in Variables 7.5.3 Using 'ARGC' and 'ARGV' ----------------------------- -*note Auto-set::, presented the following program describing the +*note Auto-set:: presented the following program describing the information contained in 'ARGC' and 'ARGV': $ awk 'BEGIN { @@ -10833,9 +10833,8 @@ string. Another option is to use the 'delete' statement to remove 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 *note -Tee Program::, for examples of each way of removing elements from -'ARGV'. +actual processing of the input begins. *Note Split Program:: and *note +Tee Program:: for examples of each way of removing elements from '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 @@ -10872,14 +10871,14 @@ be: 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 'awk' +passed on to the 'awk' program. (*Note Getopt Function:: for an 'awk' library function that parses command-line options.) When designing your program, you should choose options that don't conflict with 'gawk''s, because it will process any options that it accepts before passing the rest of the command line on to your program. -Using '#!' with the '-E' option may help (*note Executable Scripts::, -and *note Options::,). +Using '#!' with the '-E' option may help (*note Executable Scripts:: and +*note Options::). File: gawk.info, Node: Pattern Action Summary, Prev: Built-in Variables, Up: Patterns and Actions @@ -11258,7 +11257,7 @@ least once) in the input, by storing a one into the array 'used' with the word as the index. The second rule scans the elements of 'used' to find all the distinct words that appear in the input. It prints each word that is more than 10 characters long and also prints the number of -such words. *Note String Functions::, for more information on the +such words. *Note String Functions:: for more information on the built-in function 'length()'. # Record a 1 for each word that is used at least once @@ -11278,7 +11277,7 @@ built-in function 'length()'. print num_long_words, "words longer than 10 characters" } -*Note Word Sorting::, for a more detailed example of this type. +*Note Word Sorting:: for a more detailed example of this type. The order in which elements of the array are accessed by this statement is determined by the internal arrangement of the array @@ -11883,7 +11882,7 @@ following code prints the elements of our main array 'a': } } -*Note Walking Arrays::, for a user-defined function that "walks" an +*Note Walking Arrays:: for a user-defined function that "walks" an arbitrarily dimensioned array of arrays. Recall that a reference to an uninitialized array element yields a @@ -12224,7 +12223,7 @@ Options::): HOW, as it requires understanding features that we have not discussed yet. Thus, the discussion here is a deliberate simplification. (We do provide all the details later on; see - *note Array Sorting Functions::, for the full story.) + *note Array Sorting Functions:: for the full story.) Both functions return the number of elements in the array SOURCE. For 'asort()', 'gawk' sorts the values of SOURCE and replaces the @@ -12392,7 +12391,7 @@ Options::): The REGEXP argument may be either a regexp constant ('/'...'/') or a string constant ('"'...'"'). In the latter case, the string is - treated as a regexp to be matched. *Note Computed Regexps::, for a + treated as a regexp to be matched. *Note Computed Regexps:: for a discussion of the difference between the two forms, and the implications for writing your program correctly. @@ -12539,9 +12538,9 @@ Options::): Modern implementations of 'awk', including 'gawk', allow the third argument to be a regexp constant ('/'...'/') as well as a string. (d.c.) The POSIX standard allows this as well. *Note Computed - Regexps::, for a discussion of the difference between using a - string constant or a regexp constant, and the implications for - writing your program correctly. + Regexps:: for a discussion of the difference between using a string + constant or a regexp constant, and the implications for writing + your program correctly. Before splitting the string, 'split()' deletes any previously existing elements in the arrays ARRAY and SEPS. @@ -12591,7 +12590,7 @@ Options::): The REGEXP argument may be either a regexp constant ('/'...'/') or a string constant ('"'...'"'). In the latter case, the string is - treated as a regexp to be matched. *Note Computed Regexps::, for a + treated as a regexp to be matched. *Note Computed Regexps:: for a discussion of the difference between the two forms, and the implications for writing your program correctly. @@ -12723,7 +12722,7 @@ Although this makes a certain amount of sense, it can be surprising. ---------- Footnotes ---------- (1) Unless you use the '--non-decimal-data' option, which isn't -recommended. *Note Nondecimal Data::, for more information. +recommended. *Note Nondecimal Data:: for more information. (2) Note that this means that the record will first be regenerated using the value of 'OFS' if any fields have been changed, and that the @@ -12892,7 +12891,7 @@ parameters are enclosed in square brackets ([ ]): Close the file FILENAME for input or output. Alternatively, the argument may be a shell command that was used for creating a coprocess, or for redirecting to or from a pipe; then the coprocess - or pipe is closed. *Note Close Files And Pipes::, for more + or pipe is closed. *Note Close Files And Pipes:: for more information. When closing a coprocess, it is occasionally useful to first close @@ -14598,7 +14597,7 @@ File: gawk.info, Node: Library Functions, Next: Sample Programs, Prev: Functi 10 A Library of 'awk' Functions ******************************* -*note User-defined::, describes how to write your own 'awk' functions. +*note User-defined:: describes how to write your own 'awk' functions. Writing functions is important, because it allows you to encapsulate algorithms and program tasks in a single place. It simplifies programming, making program development more manageable and making @@ -14625,7 +14624,7 @@ of the sample programs presented later in this Info file use these functions. The functions are presented here in a progression from simple to complex. - *note Extract Program::, presents a program that you can use to + *note Extract Program:: presents a program that you can use to extract the source code for these example library functions and programs from the Texinfo source for this Info file. (This has already been done as part of the 'gawk' distribution.) @@ -14742,7 +14741,7 @@ program, leading to bugs that are very difficult to track down: single associative array to hold the values needed by the library function(s), or "package." This significantly decreases the number of actual global names in use. For example, the functions described in -*note Passwd Functions::, might have used array elements +*note Passwd Functions:: might have used array elements 'PW_data["inited"]', 'PW_data["total"]', 'PW_data["count"]', and 'PW_data["awklib"]', instead of '_pw_inited', '_pw_awklib', '_pw_total', and '_pw_count'. @@ -15183,8 +15182,8 @@ File: gawk.info, Node: Getlocaltime Function, Next: Readfile Function, Prev: ------------------------------- The 'systime()' and 'strftime()' functions described in *note Time -Functions::, provide the minimum functionality necessary for dealing -with the time of day in human-readable form. Although 'strftime()' is +Functions:: provide the minimum functionality necessary for dealing with +the time of day in human-readable form. Although 'strftime()' is extensive, the control formats are not necessarily easy to remember or intuitively obvious when reading a program. @@ -15254,8 +15253,8 @@ current time formatted in the same way as the 'date' utility: The string indices are easier to use and read than the various formats required by 'strftime()'. The 'alarm' program presented in -*note Alarm Program::, uses this function. A more general design for -the 'getlocaltime()' function would have allowed the user to supply an +*note Alarm Program:: uses this function. A more general design for the +'getlocaltime()' function would have allowed the user to supply an optional timestamp value to use instead of the current time. @@ -15305,7 +15304,7 @@ reads the entire contents of the named file in one shot: never match if the file has contents. 'gawk' reads data from the file into 'tmp', attempting to match 'RS'. The match fails after each read, but fails quickly, such that 'gawk' fills 'tmp' with the entire contents -of the file. (*Note Records::, for information on 'RT' and 'RS'.) +of the file. (*Note Records:: for information on 'RT' and 'RS'.) In the case that 'file' is empty, the return value is the null string. Thus, calling code may use something like: @@ -15317,8 +15316,8 @@ string. Thus, calling code may use something like: This tests the result to see if it is empty or not. An equivalent test would be 'contents == ""'. - *Note Extension Sample Readfile::, for an extension function that -also reads an entire file into memory. + *Note Extension Sample Readfile:: for an extension function that also +reads an entire file into memory. File: gawk.info, Node: Shell Quoting, Prev: Readfile Function, Up: General Functions @@ -15469,7 +15468,7 @@ solves the problem: END { endfile(_filename_) } - *note Wc Program::, shows how this library function can be used and + *note Wc Program:: shows how this library function can be used and how it simplifies writing the main program. So Why Does 'gawk' Have 'BEGINFILE' and 'ENDFILE'? @@ -15943,7 +15942,7 @@ that it does not try to interpret the '-a', etc., as its own options. Using '#!' with the '-E' option may help avoid conflicts between your program's options and 'gawk''s options, as '-E' causes 'gawk' to abandon -processing of further options (*note Executable Scripts::, and *note +processing of further options (*note Executable Scripts:: and *note Options::). Several of the sample programs presented in *note Sample Programs::, @@ -15968,7 +15967,7 @@ are numbers, they do not provide very useful information to the average user. There needs to be some way to find the user information associated with the user and group ID numbers. This minor node presents a suite of functions for retrieving information from the user database. -*Note Group Functions::, for a similar suite that retrieves information +*Note Group Functions:: for a similar suite that retrieves information from the group database. The POSIX standard does not define the file where user information is @@ -16188,7 +16187,7 @@ once. If you are worried about squeezing every last cycle out of your this is not necessary, as most 'awk' programs are I/O-bound, and such a change would clutter up the code. - The 'id' program in *note Id Program::, uses these functions. + The 'id' program in *note Id Program:: uses these functions. ---------- Footnotes ---------- @@ -16201,7 +16200,7 @@ File: gawk.info, Node: Group Functions, Next: Walking Arrays, Prev: Passwd Fu 10.6 Reading the Group Database =============================== -Much of the discussion presented in *note Passwd Functions::, applies to +Much of the discussion presented in *note Passwd Functions:: applies to the group database as well. Although there has traditionally been a well-known file ('/etc/group') in a well-known format, the POSIX standard only provides a set of C library routines ('<grp.h>' and @@ -16423,7 +16422,7 @@ body of '_gr_init()' into a 'BEGIN' rule). associative arrays. The functions that the user calls are themselves very simple, relying on 'awk''s associative arrays to do work. - The 'id' program in *note Id Program::, uses these functions. + The 'id' program in *note Id Program:: uses these functions. ---------- Footnotes ---------- @@ -16437,10 +16436,10 @@ File: gawk.info, Node: Walking Arrays, Next: Library Functions Summary, Prev: 10.7 Traversing Arrays of Arrays ================================ -*note Arrays of Arrays::, described how 'gawk' provides arrays of -arrays. In particular, any element of an array may be either a scalar -or another array. The 'isarray()' function (*note Type Functions::) -lets you distinguish an array from a scalar. The following function, +*note Arrays of Arrays:: described how 'gawk' provides arrays of arrays. +In particular, any element of an array may be either a scalar or another +array. The 'isarray()' function (*note Type Functions::) lets you +distinguish an array from a scalar. The following function, 'walk_array()', recursively traverses an array, printing the element indices and values. You call it with the array and a string representing the name of the array: @@ -19178,7 +19177,7 @@ File: gawk.info, Node: Programs Summary, Next: Programs Exercises, Prev: Misc the separator can considerably simplify such tasks. * The examples here demonstrate the usefulness of the library - functions from *note Library Functions::, for a number of real (if + functions from *note Library Functions:: for a number of real (if small) programs. * Besides reinventing POSIX wheels, other programs solved a selection @@ -19407,7 +19406,7 @@ implementation of arrays inside 'awk'. in a particular order that you, the programmer, choose. 'gawk' lets you do this. - *note Controlling Scanning::, describes how you can assign special, + *note Controlling Scanning:: describes how you can assign special, predefined values to 'PROCINFO["sorted_in"]' in order to control the order in which 'gawk' traverses an array during a 'for' loop. @@ -19426,7 +19425,7 @@ arguments: Here, 'i1' and 'i2' are the indices, and 'v1' and 'v2' are the corresponding values of the two elements being compared. Either 'v1' or 'v2', or both, can be arrays if the array being traversed contains -subarrays as values. (*Note Arrays of Arrays::, for more information +subarrays as values. (*Note Arrays of Arrays:: for more information about subarrays.) The three possible return values are interpreted as follows: @@ -20572,7 +20571,7 @@ File: gawk.info, Node: Programmer i18n, Next: Translator i18n, Prev: Explaini ... } - *Note I18N Example::, for an example program showing the steps to + *Note I18N Example:: for an example program showing the steps to create and use translations from 'awk'. ---------- Footnotes ---------- @@ -20620,7 +20619,7 @@ included in the output are any constant strings that appear as the first argument to 'dcgettext()' or as the first and second argument to 'dcngettext()'.(1) You should distribute the generated '.pot' file with your 'awk' program; translators will eventually use it to provide you -translations that you can also then distribute. *Note I18N Example::, +translations that you can also then distribute. *Note I18N Example:: for the full list of steps to go through to create and test translations for 'guide'. @@ -22305,7 +22304,7 @@ results to any desired precision level supported by MPFR. Two predefined variables, 'PREC' and 'ROUNDMODE', provide control over the working precision and the rounding mode. The precision and the rounding mode are set globally for every operation to follow. *Note -Setting precision::, and *note Setting the rounding mode::, for more +Setting precision:: and *note Setting the rounding mode:: for more information. @@ -23165,7 +23164,7 @@ Example::) and also in the 'testext.c' code for testing the APIs. extension can check if the 'gawk' it is loaded with supports the facilities it was compiled with. (Version mismatches "shouldn't" happen, but we all know how _that_ goes.) *Note Extension - Versioning::, for details. + Versioning:: for details. File: gawk.info, Node: Extension API Description, Next: Finding Extensions, Prev: Extension Mechanism Outline, Up: Dynamic Extensions @@ -24187,7 +24186,7 @@ your extension function. They are: Convert a parameter that was undefined into an array; this provides call by reference for arrays. Return false if 'count' is too big, or if the argument's type is not undefined. *Note Array - Manipulation::, for more information on creating arrays. + Manipulation:: for more information on creating arrays. File: gawk.info, Node: Symbol Table Access, Next: Array Manipulation, Prev: Accessing Parameters, Up: Extension API Description @@ -24604,7 +24603,7 @@ The following functions relate to individual array elements: 'awk_array_t create_array(void);' Create a new array to which elements may be added. *Note Creating - Arrays::, for a discussion of how to create a new array and add + Arrays:: for a discussion of how to create a new array and add elements to it. 'awk_bool_t clear_array(awk_array_t a_cookie);' @@ -24936,7 +24935,7 @@ array: -| new_array["hello"] = world -| new_array["answer"] = 42 -(*Note Finding Extensions::, for more information on the 'AWKLIBPATH' +(*Note Finding Extensions:: for more information on the 'AWKLIBPATH' environment variable.) @@ -25220,7 +25219,7 @@ Compiled extensions have to be installed in a directory where 'gawk' can find them. If 'gawk' is configured and built in the default fashion, the directory in which to find extensions is '/usr/local/lib/gawk'. You can also specify a search path with a list of directories to search for -compiled extensions. *Note AWKLIBPATH Variable::, for more information. +compiled extensions. *Note AWKLIBPATH Variable:: for more information. File: gawk.info, Node: Extension Example, Next: Extension Samples, Prev: Finding Extensions, Up: Dynamic Extensions @@ -25808,7 +25807,7 @@ directory and run the program: (1) In practice, you would probably want to use the GNU Autotools (Automake, Autoconf, Libtool, and 'gettext') to configure and build your libraries. Instructions for doing so are beyond the scope of this Info -file. *Note gawkextlib::, for Internet links to the tools. +file. *Note gawkextlib:: for Internet links to the tools. File: gawk.info, Node: Extension Samples, Next: gawkextlib, Prev: Extension Example, Up: Dynamic Extensions @@ -26782,7 +26781,7 @@ many years were finally added to POSIX. They are: * The ability to delete all of an array at once with 'delete ARRAY' (*note Delete::) - *Note Common Extensions::, for a list of common extensions not + *Note Common Extensions:: for a list of common extensions not permitted by the POSIX standard. The 2008 POSIX standard can be found online at @@ -26809,8 +26808,8 @@ in his version of 'awk': * The 'fflush()' built-in function for flushing buffered output (*note I/O Functions::) - *Note Common Extensions::, for a full list of the extensions -available in his 'awk'. + *Note Common Extensions:: for a full list of the extensions available +in his 'awk'. File: gawk.info, Node: POSIX/GNU, Next: Feature History, Prev: BTL, Up: Language History @@ -27717,7 +27716,7 @@ Appendix B Installing 'gawk' This appendix provides instructions for installing 'gawk' on the various platforms that are supported by the developers. The primary developer supports GNU/Linux (and Unix), whereas the other ports are contributed. -*Note Bugs::, for the email addresses of the people who maintain the +*Note Bugs:: for the email addresses of the people who maintain the respective ports. * Menu: @@ -27978,11 +27977,11 @@ Various '.c', '.y', and '.h' files 'pc/*' Files needed for building 'gawk' under MS-Windows and OS/2 (*note - PC Installation::, for details). + PC Installation:: for details). 'vms/*' Files needed for building 'gawk' under Vax/VMS and OpenVMS (*note - VMS Installation::, for details). + VMS Installation:: for details). 'test/*' A test suite for 'gawk'. You can use 'make check' from the @@ -28181,7 +28180,7 @@ any constants that 'configure' defined and should not have. The Autoconf will not work on your system in some other fashion. If you do have a problem, the 'configure.ac' file is the input for Autoconf. You may be able to change this file and generate a new version of -'configure' that works on your system (*note Bugs::, for information on +'configure' that works on your system (*note Bugs:: for information on how to report problems in configuring 'gawk'). The same mechanism may be used to send in updates to 'configure.ac' and/or 'custom.h'. @@ -28552,8 +28551,8 @@ Compaq C V6.4, and under Alpha/VMS 7.3, Alpha/VMS 7.3-2, and IA64/VMS 8.3. The most recent builds used HP C V7.3 on Alpha VMS 8.3 and both Alpha and IA64 VMS 8.4 used HP C 7.3.(1) - *Note VMS GNV::, for information on building 'gawk' as a PCSI kit -that is compatible with the GNV product. + *Note VMS GNV:: for information on building 'gawk' as a PCSI kit that +is compatible with the GNV product. ---------- Footnotes ---------- @@ -28936,7 +28935,7 @@ Unix 'awk' This version requires an ISO C (1990 standard) compiler; the C compiler from GCC (the GNU Compiler Collection) works quite nicely. - *Note Common Extensions::, for a list of extensions in this 'awk' + *Note Common Extensions:: for a list of extensions in this 'awk' that are not in POSIX 'awk'. As a side note, Dan Bornstein has created a Git repository tracking @@ -28960,7 +28959,7 @@ Unix 'awk' Once you have it, 'gunzip' may be used to decompress this file. Installation is similar to 'gawk''s (*note Unix Installation::). - *Note Common Extensions::, for a list of extensions in 'mawk' that + *Note Common Extensions:: for a list of extensions in 'mawk' that are not in POSIX 'awk'. 'awka' @@ -29153,7 +29152,7 @@ C.2.1 Accessing The 'gawk' Git Repository ----------------------------------------- As 'gawk' is Free Software, the source code is always available. *note -Gawk Distribution::, describes how to get and build the formal, released +Gawk Distribution:: describes how to get and build the formal, released versions of 'gawk'. However, if you want to modify 'gawk' and contribute back your @@ -33106,7 +33105,7 @@ Index * describe call stack frame, in debugger: Debugger Info. (line 27) * differences between gawk and awk: String Functions. (line 200) * differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV. - (line 90) + (line 89) * differences in awk and gawk, ARGIND variable: Auto-set. (line 44) * differences in awk and gawk, array elements, deleting: Delete. (line 39) @@ -35160,564 +35159,564 @@ Index Tag Table: -Node: Top1203 -Node: Foreword342509 -Node: Foreword446951 -Node: Preface48483 -Ref: Preface-Footnote-151355 -Ref: Preface-Footnote-251462 -Ref: Preface-Footnote-351696 -Node: History51838 -Node: Names54191 -Ref: Names-Footnote-155285 -Node: This Manual55432 -Ref: This Manual-Footnote-161914 -Node: Conventions62014 -Node: Manual History64369 -Ref: Manual History-Footnote-167365 -Ref: Manual History-Footnote-267406 -Node: How To Contribute67480 -Node: Acknowledgments68609 -Node: Getting Started73496 -Node: Running gawk75935 -Node: One-shot77125 -Node: Read Terminal78388 -Node: Long80420 -Node: Executable Scripts81933 -Ref: Executable Scripts-Footnote-184728 -Node: Comments84831 -Node: Quoting87315 -Node: DOS Quoting92833 -Node: Sample Data Files93508 -Node: Very Simple96103 -Node: Two Rules101005 -Node: More Complex102891 -Node: Statements/Lines105754 -Ref: Statements/Lines-Footnote-1110213 -Node: Other Features110478 -Node: When111415 -Ref: When-Footnote-1113169 -Node: Intro Summary113234 -Node: Invoking Gawk114118 -Node: Command Line115632 -Node: Options116430 -Ref: Options-Footnote-1132529 -Ref: Options-Footnote-2132759 -Node: Other Arguments132784 -Node: Naming Standard Input135731 -Node: Environment Variables136824 -Node: AWKPATH Variable137382 -Ref: AWKPATH Variable-Footnote-1140793 -Ref: AWKPATH Variable-Footnote-2140838 -Node: AWKLIBPATH Variable141099 -Node: Other Environment Variables142356 -Node: Exit Status145994 -Node: Include Files146671 -Node: Loading Shared Libraries150266 -Node: Obsolete151694 -Node: Undocumented152386 -Node: Invoking Summary152683 -Node: Regexp154343 -Node: Regexp Usage155862 -Node: Escape Sequences157899 -Node: Regexp Operators164132 -Ref: Regexp Operators-Footnote-1171549 -Ref: Regexp Operators-Footnote-2171696 -Node: Bracket Expressions171794 -Ref: table-char-classes173817 -Node: Leftmost Longest176954 -Node: Computed Regexps178257 -Node: GNU Regexp Operators181684 -Node: Case-sensitivity185363 -Ref: Case-sensitivity-Footnote-1188259 -Ref: Case-sensitivity-Footnote-2188494 -Node: Strong Regexp Constants188602 -Node: Regexp Summary191544 -Node: Reading Files193150 -Node: Records195313 -Node: awk split records196046 -Node: gawk split records200978 -Ref: gawk split records-Footnote-1205522 -Node: Fields205559 -Node: Nonconstant Fields208300 -Ref: Nonconstant Fields-Footnote-1210536 -Node: Changing Fields210740 -Node: Field Separators216670 -Node: Default Field Splitting219368 -Node: Regexp Field Splitting220486 -Node: Single Character Fields223839 -Node: Command Line Field Separator224899 -Node: Full Line Fields228117 -Ref: Full Line Fields-Footnote-1229639 -Ref: Full Line Fields-Footnote-2229685 -Node: Field Splitting Summary229786 -Node: Constant Size231860 -Node: Splitting By Content236439 -Ref: Splitting By Content-Footnote-1240410 -Node: Multiple Line240573 -Ref: Multiple Line-Footnote-1246456 -Node: Getline246635 -Node: Plain Getline249102 -Node: Getline/Variable251741 -Node: Getline/File252890 -Node: Getline/Variable/File254276 -Ref: Getline/Variable/File-Footnote-1255880 -Node: Getline/Pipe255968 -Node: Getline/Variable/Pipe258673 -Node: Getline/Coprocess259806 -Node: Getline/Variable/Coprocess261071 -Node: Getline Notes261811 -Node: Getline Summary264606 -Ref: table-getline-variants265028 -Node: Read Timeout265776 -Ref: Read Timeout-Footnote-1269683 -Node: Retrying Input269741 -Node: Command-line directories270940 -Node: Input Summary271847 -Node: Input Exercises275019 -Node: Printing275747 -Node: Print277582 -Node: Print Examples279039 -Node: Output Separators281819 -Node: OFMT283836 -Node: Printf285192 -Node: Basic Printf285977 -Node: Control Letters287551 -Node: Format Modifiers291539 -Node: Printf Examples297554 -Node: Redirection300040 -Node: Special FD306883 -Ref: Special FD-Footnote-1310051 -Node: Special Files310125 -Node: Other Inherited Files310742 -Node: Special Network311743 -Node: Special Caveats312603 -Node: Close Files And Pipes313552 -Ref: Close Files And Pipes-Footnote-1320739 -Ref: Close Files And Pipes-Footnote-2320887 -Node: Nonfatal321038 -Node: Output Summary323363 -Node: Output Exercises324585 -Node: Expressions325264 -Node: Values326452 -Node: Constants327130 -Node: Scalar Constants327821 -Ref: Scalar Constants-Footnote-1328685 -Node: Nondecimal-numbers328935 -Node: Regexp Constants331949 -Node: Using Constant Regexps332475 -Node: Variables335638 -Node: Using Variables336295 -Node: Assignment Options338206 -Node: Conversion340080 -Node: Strings And Numbers340604 -Ref: Strings And Numbers-Footnote-1343668 -Node: Locale influences conversions343777 -Ref: table-locale-affects346535 -Node: All Operators347153 -Node: Arithmetic Ops347782 -Node: Concatenation350288 -Ref: Concatenation-Footnote-1353135 -Node: Assignment Ops353242 -Ref: table-assign-ops358234 -Node: Increment Ops359547 -Node: Truth Values and Conditions363007 -Node: Truth Values364081 -Node: Typing and Comparison365129 -Node: Variable Typing365949 -Node: Comparison Operators369573 -Ref: table-relational-ops369992 -Node: POSIX String Comparison373487 -Ref: POSIX String Comparison-Footnote-1374561 -Node: Boolean Ops374700 -Ref: Boolean Ops-Footnote-1379182 -Node: Conditional Exp379274 -Node: Function Calls381010 -Node: Precedence384890 -Node: Locales388549 -Node: Expressions Summary390181 -Node: Patterns and Actions392754 -Node: Pattern Overview393874 -Node: Regexp Patterns395551 -Node: Expression Patterns396093 -Node: Ranges399874 -Node: BEGIN/END402982 -Node: Using BEGIN/END403743 -Ref: Using BEGIN/END-Footnote-1406480 -Node: I/O And BEGIN/END406586 -Node: BEGINFILE/ENDFILE408902 -Node: Empty411809 -Node: Using Shell Variables412126 -Node: Action Overview414400 -Node: Statements416725 -Node: If Statement418573 -Node: While Statement420068 -Node: Do Statement422096 -Node: For Statement423244 -Node: Switch Statement426403 -Node: Break Statement428789 -Node: Continue Statement430881 -Node: Next Statement432708 -Node: Nextfile Statement435091 -Node: Exit Statement437743 -Node: Built-in Variables440148 -Node: User-modified441281 -Node: Auto-set448869 -Ref: Auto-set-Footnote-1463262 -Ref: Auto-set-Footnote-2463468 -Node: ARGC and ARGV463524 -Node: Pattern Action Summary467743 -Node: Arrays470173 -Node: Array Basics471502 -Node: Array Intro472346 -Ref: figure-array-elements474321 -Ref: Array Intro-Footnote-1477025 -Node: Reference to Elements477153 -Node: Assigning Elements479617 -Node: Array Example480108 -Node: Scanning an Array481867 -Node: Controlling Scanning484891 -Ref: Controlling Scanning-Footnote-1490290 -Node: Numeric Array Subscripts490606 -Node: Uninitialized Subscripts492790 -Node: Delete494409 -Ref: Delete-Footnote-1497161 -Node: Multidimensional497218 -Node: Multiscanning500313 -Node: Arrays of Arrays501904 -Node: Arrays Summary506672 -Node: Functions508765 -Node: Built-in509803 -Node: Calling Built-in510881 -Node: Numeric Functions512877 -Ref: Numeric Functions-Footnote-1517710 -Ref: Numeric Functions-Footnote-2518067 -Ref: Numeric Functions-Footnote-3518115 -Node: String Functions518387 -Ref: String Functions-Footnote-1541895 -Ref: String Functions-Footnote-2542024 -Ref: String Functions-Footnote-3542272 -Node: Gory Details542359 -Ref: table-sub-escapes544150 -Ref: table-sub-proposed545669 -Ref: table-posix-sub547032 -Ref: table-gensub-escapes548573 -Ref: Gory Details-Footnote-1549396 -Node: I/O Functions549547 -Ref: I/O Functions-Footnote-1556768 -Node: Time Functions556916 -Ref: Time Functions-Footnote-1567421 -Ref: Time Functions-Footnote-2567489 -Ref: Time Functions-Footnote-3567647 -Ref: Time Functions-Footnote-4567758 -Ref: Time Functions-Footnote-5567870 -Ref: Time Functions-Footnote-6568097 -Node: Bitwise Functions568363 -Ref: table-bitwise-ops568957 -Ref: Bitwise Functions-Footnote-1573295 -Node: Type Functions573468 -Node: I18N Functions576129 -Node: User-defined577780 -Node: Definition Syntax578585 -Ref: Definition Syntax-Footnote-1584272 -Node: Function Example584343 -Ref: Function Example-Footnote-1587265 -Node: Function Caveats587287 -Node: Calling A Function587805 -Node: Variable Scope588763 -Node: Pass By Value/Reference591757 -Node: Return Statement595256 -Node: Dynamic Typing598235 -Node: Indirect Calls599165 -Ref: Indirect Calls-Footnote-1609416 -Node: Functions Summary609544 -Node: Library Functions612249 -Ref: Library Functions-Footnote-1615858 -Ref: Library Functions-Footnote-2616001 -Node: Library Names616172 -Ref: Library Names-Footnote-1619633 -Ref: Library Names-Footnote-2619856 -Node: General Functions619942 -Node: Strtonum Function621045 -Node: Assert Function624067 -Node: Round Function627393 -Node: Cliff Random Function628934 -Node: Ordinal Functions629950 -Ref: Ordinal Functions-Footnote-1633013 -Ref: Ordinal Functions-Footnote-2633265 -Node: Join Function633475 -Ref: Join Function-Footnote-1635245 -Node: Getlocaltime Function635445 -Node: Readfile Function639189 -Node: Shell Quoting641163 -Node: Data File Management642564 -Node: Filetrans Function643196 -Node: Rewind Function647293 -Node: File Checking648679 -Ref: File Checking-Footnote-1650013 -Node: Empty Files650214 -Node: Ignoring Assigns652193 -Node: Getopt Function653743 -Ref: Getopt Function-Footnote-1665213 -Node: Passwd Functions665413 -Ref: Passwd Functions-Footnote-1674254 -Node: Group Functions674342 -Ref: Group Functions-Footnote-1682241 -Node: Walking Arrays682448 -Node: Library Functions Summary685458 -Node: Library Exercises686864 -Node: Sample Programs687329 -Node: Running Examples688099 -Node: Clones688827 -Node: Cut Program690051 -Node: Egrep Program699772 -Ref: Egrep Program-Footnote-1707284 -Node: Id Program707394 -Node: Split Program711074 -Ref: Split Program-Footnote-1714533 -Node: Tee Program714662 -Node: Uniq Program717452 -Node: Wc Program724878 -Ref: Wc Program-Footnote-1729133 -Node: Miscellaneous Programs729227 -Node: Dupword Program730440 -Node: Alarm Program732470 -Node: Translate Program737325 -Ref: Translate Program-Footnote-1741890 -Node: Labels Program742160 -Ref: Labels Program-Footnote-1745511 -Node: Word Sorting745595 -Node: History Sorting749667 -Node: Extract Program751502 -Node: Simple Sed759031 -Node: Igawk Program762105 -Ref: Igawk Program-Footnote-1776436 -Ref: Igawk Program-Footnote-2776638 -Ref: Igawk Program-Footnote-3776760 -Node: Anagram Program776875 -Node: Signature Program779937 -Node: Programs Summary781184 -Node: Programs Exercises782399 -Ref: Programs Exercises-Footnote-1786528 -Node: Advanced Features786619 -Node: Nondecimal Data788609 -Node: Array Sorting790200 -Node: Controlling Array Traversal790900 -Ref: Controlling Array Traversal-Footnote-1799269 -Node: Array Sorting Functions799387 -Ref: Array Sorting Functions-Footnote-1804478 -Node: Two-way I/O804674 -Ref: Two-way I/O-Footnote-1810494 -Ref: Two-way I/O-Footnote-2810681 -Node: TCP/IP Networking810763 -Node: Profiling813881 -Node: Advanced Features Summary822335 -Node: Internationalization824179 -Node: I18N and L10N825659 -Node: Explaining gettext826346 -Ref: Explaining gettext-Footnote-1831369 -Ref: Explaining gettext-Footnote-2831554 -Node: Programmer i18n831719 -Ref: Programmer i18n-Footnote-1836575 -Node: Translator i18n836624 -Node: String Extraction837418 -Ref: String Extraction-Footnote-1838551 -Node: Printf Ordering838637 -Ref: Printf Ordering-Footnote-1841423 -Node: I18N Portability841487 -Ref: I18N Portability-Footnote-1843943 -Node: I18N Example844006 -Ref: I18N Example-Footnote-1846812 -Node: Gawk I18N846885 -Node: I18N Summary847530 -Node: Debugger848871 -Node: Debugging849893 -Node: Debugging Concepts850334 -Node: Debugging Terms852143 -Node: Awk Debugging854718 -Node: Sample Debugging Session855624 -Node: Debugger Invocation856158 -Node: Finding The Bug857544 -Node: List of Debugger Commands864022 -Node: Breakpoint Control865355 -Node: Debugger Execution Control869049 -Node: Viewing And Changing Data872411 -Node: Execution Stack875785 -Node: Debugger Info877422 -Node: Miscellaneous Debugger Commands881493 -Node: Readline Support886581 -Node: Limitations887477 -Ref: Limitations-Footnote-1891708 -Node: Debugging Summary891759 -Node: Arbitrary Precision Arithmetic893038 -Node: Computer Arithmetic894454 -Ref: table-numeric-ranges898045 -Ref: Computer Arithmetic-Footnote-1898767 -Node: Math Definitions898824 -Ref: table-ieee-formats902138 -Ref: Math Definitions-Footnote-1902741 -Node: MPFR features902846 -Node: FP Math Caution904565 -Ref: FP Math Caution-Footnote-1905637 -Node: Inexactness of computations906006 -Node: Inexact representation906966 -Node: Comparing FP Values908326 -Node: Errors accumulate909408 -Node: Getting Accuracy910841 -Node: Try To Round913551 -Node: Setting precision914450 -Ref: table-predefined-precision-strings915147 -Node: Setting the rounding mode916977 -Ref: table-gawk-rounding-modes917351 -Ref: Setting the rounding mode-Footnote-1920759 -Node: Arbitrary Precision Integers920938 -Ref: Arbitrary Precision Integers-Footnote-1925855 -Node: POSIX Floating Point Problems926004 -Ref: POSIX Floating Point Problems-Footnote-1929886 -Node: Floating point summary929924 -Node: Dynamic Extensions932114 -Node: Extension Intro933667 -Node: Plugin License934933 -Node: Extension Mechanism Outline935730 -Ref: figure-load-extension936169 -Ref: figure-register-new-function937734 -Ref: figure-call-new-function938826 -Node: Extension API Description940889 -Node: Extension API Functions Introduction942421 -Node: General Data Types947280 -Ref: General Data Types-Footnote-1953235 -Node: Memory Allocation Functions953534 -Ref: Memory Allocation Functions-Footnote-1956379 -Node: Constructor Functions956478 -Node: Registration Functions958223 -Node: Extension Functions958908 -Node: Exit Callback Functions961207 -Node: Extension Version String962457 -Node: Input Parsers963120 -Node: Output Wrappers973005 -Node: Two-way processors977517 -Node: Printing Messages979781 -Ref: Printing Messages-Footnote-1980855 -Node: Updating ERRNO981008 -Node: Requesting Values981747 -Ref: table-value-types-returned982484 -Node: Accessing Parameters983367 -Node: Symbol Table Access984603 -Node: Symbol table by name985115 -Node: Symbol table by cookie987136 -Ref: Symbol table by cookie-Footnote-1991285 -Node: Cached values991349 -Ref: Cached values-Footnote-1994850 -Node: Array Manipulation994941 -Ref: Array Manipulation-Footnote-1996032 -Node: Array Data Types996069 -Ref: Array Data Types-Footnote-1998727 -Node: Array Functions998819 -Node: Flattening Arrays1002678 -Node: Creating Arrays1009586 -Node: Redirection API1014358 -Node: Extension API Variables1017189 -Node: Extension Versioning1017822 -Node: Extension API Informational Variables1019713 -Node: Extension API Boilerplate1020777 -Node: Finding Extensions1024591 -Node: Extension Example1025151 -Node: Internal File Description1025949 -Node: Internal File Ops1030029 -Ref: Internal File Ops-Footnote-11041791 -Node: Using Internal File Ops1041931 -Ref: Using Internal File Ops-Footnote-11044314 -Node: Extension Samples1044589 -Node: Extension Sample File Functions1046118 -Node: Extension Sample Fnmatch1053767 -Node: Extension Sample Fork1055254 -Node: Extension Sample Inplace1056472 -Node: Extension Sample Ord1059682 -Node: Extension Sample Readdir1060518 -Ref: table-readdir-file-types1061407 -Node: Extension Sample Revout1062212 -Node: Extension Sample Rev2way1062801 -Node: Extension Sample Read write array1063541 -Node: Extension Sample Readfile1065483 -Node: Extension Sample Time1066578 -Node: Extension Sample API Tests1067926 -Node: gawkextlib1068418 -Node: Extension summary1070865 -Node: Extension Exercises1074557 -Node: Language History1076054 -Node: V7/SVR3.11077710 -Node: SVR41079862 -Node: POSIX1081296 -Node: BTL1082676 -Node: POSIX/GNU1083406 -Node: Feature History1089268 -Node: Common Extensions1103638 -Node: Ranges and Locales1104921 -Ref: Ranges and Locales-Footnote-11109537 -Ref: Ranges and Locales-Footnote-21109564 -Ref: Ranges and Locales-Footnote-31109799 -Node: Contributors1110020 -Node: History summary1115589 -Node: Installation1116969 -Node: Gawk Distribution1117914 -Node: Getting1118398 -Node: Extracting1119359 -Node: Distribution contents1120997 -Node: Unix Installation1127093 -Node: Quick Installation1127775 -Node: Shell Startup Files1130189 -Node: Additional Configuration Options1131267 -Node: Configuration Philosophy1133072 -Node: Non-Unix Installation1135442 -Node: PC Installation1135900 -Node: PC Binary Installation1137220 -Node: PC Compiling1139072 -Ref: PC Compiling-Footnote-11142096 -Node: PC Testing1142205 -Node: PC Using1143385 -Node: Cygwin1147499 -Node: MSYS1148269 -Node: VMS Installation1148770 -Node: VMS Compilation1149561 -Ref: VMS Compilation-Footnote-11150791 -Node: VMS Dynamic Extensions1150849 -Node: VMS Installation Details1152534 -Node: VMS Running1154787 -Node: VMS GNV1159066 -Node: VMS Old Gawk1159801 -Node: Bugs1160272 -Node: Other Versions1164469 -Node: Installation summary1171055 -Node: Notes1172113 -Node: Compatibility Mode1172978 -Node: Additions1173760 -Node: Accessing The Source1174685 -Node: Adding Code1176121 -Node: New Ports1182340 -Node: Derived Files1186828 -Ref: Derived Files-Footnote-11192313 -Ref: Derived Files-Footnote-21192348 -Ref: Derived Files-Footnote-31192946 -Node: Future Extensions1193060 -Node: Implementation Limitations1193718 -Node: Extension Design1194901 -Node: Old Extension Problems1196055 -Ref: Old Extension Problems-Footnote-11197573 -Node: Extension New Mechanism Goals1197630 -Ref: Extension New Mechanism Goals-Footnote-11200994 -Node: Extension Other Design Decisions1201183 -Node: Extension Future Growth1203296 -Node: Old Extension Mechanism1204132 -Node: Notes summary1205895 -Node: Basic Concepts1207077 -Node: Basic High Level1207758 -Ref: figure-general-flow1208040 -Ref: figure-process-flow1208725 -Ref: Basic High Level-Footnote-11212026 -Node: Basic Data Typing1212211 -Node: Glossary1215539 -Node: Copying1247485 -Node: GNU Free Documentation License1285024 -Node: Index1310142 +Node: Top1200 +Node: Foreword342506 +Node: Foreword446948 +Node: Preface48480 +Ref: Preface-Footnote-151352 +Ref: Preface-Footnote-251459 +Ref: Preface-Footnote-351693 +Node: History51835 +Node: Names54187 +Ref: Names-Footnote-155281 +Node: This Manual55428 +Ref: This Manual-Footnote-161910 +Node: Conventions62010 +Node: Manual History64364 +Ref: Manual History-Footnote-167359 +Ref: Manual History-Footnote-267400 +Node: How To Contribute67474 +Node: Acknowledgments68603 +Node: Getting Started73489 +Node: Running gawk75928 +Node: One-shot77118 +Node: Read Terminal78381 +Node: Long80413 +Node: Executable Scripts81926 +Ref: Executable Scripts-Footnote-184721 +Node: Comments84824 +Node: Quoting87308 +Node: DOS Quoting92825 +Node: Sample Data Files93500 +Node: Very Simple96095 +Node: Two Rules100997 +Node: More Complex102882 +Node: Statements/Lines105745 +Ref: Statements/Lines-Footnote-1110204 +Node: Other Features110469 +Node: When111405 +Ref: When-Footnote-1113159 +Node: Intro Summary113224 +Node: Invoking Gawk114108 +Node: Command Line115622 +Node: Options116420 +Ref: Options-Footnote-1132518 +Ref: Options-Footnote-2132748 +Node: Other Arguments132773 +Node: Naming Standard Input135720 +Node: Environment Variables136813 +Node: AWKPATH Variable137371 +Ref: AWKPATH Variable-Footnote-1140782 +Ref: AWKPATH Variable-Footnote-2140827 +Node: AWKLIBPATH Variable141088 +Node: Other Environment Variables142345 +Node: Exit Status145983 +Node: Include Files146660 +Node: Loading Shared Libraries150255 +Node: Obsolete151683 +Node: Undocumented152375 +Node: Invoking Summary152672 +Node: Regexp154332 +Node: Regexp Usage155851 +Node: Escape Sequences157888 +Node: Regexp Operators164120 +Ref: Regexp Operators-Footnote-1171536 +Ref: Regexp Operators-Footnote-2171683 +Node: Bracket Expressions171781 +Ref: table-char-classes173803 +Node: Leftmost Longest176940 +Node: Computed Regexps178243 +Node: GNU Regexp Operators181670 +Node: Case-sensitivity185349 +Ref: Case-sensitivity-Footnote-1188245 +Ref: Case-sensitivity-Footnote-2188480 +Node: Strong Regexp Constants188588 +Node: Regexp Summary191530 +Node: Reading Files193136 +Node: Records195299 +Node: awk split records196032 +Node: gawk split records200963 +Ref: gawk split records-Footnote-1205503 +Node: Fields205540 +Node: Nonconstant Fields208281 +Ref: Nonconstant Fields-Footnote-1210517 +Node: Changing Fields210721 +Node: Field Separators216649 +Node: Default Field Splitting219347 +Node: Regexp Field Splitting220465 +Node: Single Character Fields223818 +Node: Command Line Field Separator224878 +Node: Full Line Fields228096 +Ref: Full Line Fields-Footnote-1229618 +Ref: Full Line Fields-Footnote-2229664 +Node: Field Splitting Summary229765 +Node: Constant Size231839 +Node: Splitting By Content236417 +Ref: Splitting By Content-Footnote-1240388 +Node: Multiple Line240551 +Ref: Multiple Line-Footnote-1246433 +Node: Getline246612 +Node: Plain Getline249078 +Node: Getline/Variable251717 +Node: Getline/File252866 +Node: Getline/Variable/File254252 +Ref: Getline/Variable/File-Footnote-1255855 +Node: Getline/Pipe255943 +Node: Getline/Variable/Pipe258648 +Node: Getline/Coprocess259781 +Node: Getline/Variable/Coprocess261046 +Node: Getline Notes261786 +Node: Getline Summary264581 +Ref: table-getline-variants265003 +Node: Read Timeout265751 +Ref: Read Timeout-Footnote-1269657 +Node: Retrying Input269715 +Node: Command-line directories270914 +Node: Input Summary271820 +Node: Input Exercises274992 +Node: Printing275720 +Node: Print277554 +Node: Print Examples279011 +Node: Output Separators281791 +Node: OFMT283808 +Node: Printf285164 +Node: Basic Printf285949 +Node: Control Letters287523 +Node: Format Modifiers291511 +Node: Printf Examples297526 +Node: Redirection300012 +Node: Special FD306853 +Ref: Special FD-Footnote-1310021 +Node: Special Files310095 +Node: Other Inherited Files310712 +Node: Special Network311713 +Node: Special Caveats312573 +Node: Close Files And Pipes313522 +Ref: Close Files And Pipes-Footnote-1320709 +Ref: Close Files And Pipes-Footnote-2320857 +Node: Nonfatal321008 +Node: Output Summary323333 +Node: Output Exercises324555 +Node: Expressions325234 +Node: Values326422 +Node: Constants327100 +Node: Scalar Constants327791 +Ref: Scalar Constants-Footnote-1328655 +Node: Nondecimal-numbers328905 +Node: Regexp Constants331918 +Node: Using Constant Regexps332444 +Node: Variables335607 +Node: Using Variables336264 +Node: Assignment Options338174 +Node: Conversion340047 +Node: Strings And Numbers340571 +Ref: Strings And Numbers-Footnote-1343634 +Node: Locale influences conversions343743 +Ref: table-locale-affects346501 +Node: All Operators347119 +Node: Arithmetic Ops347748 +Node: Concatenation350254 +Ref: Concatenation-Footnote-1353101 +Node: Assignment Ops353208 +Ref: table-assign-ops358199 +Node: Increment Ops359512 +Node: Truth Values and Conditions362972 +Node: Truth Values364046 +Node: Typing and Comparison365094 +Node: Variable Typing365914 +Node: Comparison Operators369538 +Ref: table-relational-ops369957 +Node: POSIX String Comparison373452 +Ref: POSIX String Comparison-Footnote-1374526 +Node: Boolean Ops374665 +Ref: Boolean Ops-Footnote-1379147 +Node: Conditional Exp379239 +Node: Function Calls380975 +Node: Precedence384852 +Node: Locales388511 +Node: Expressions Summary390143 +Node: Patterns and Actions392716 +Node: Pattern Overview393836 +Node: Regexp Patterns395513 +Node: Expression Patterns396055 +Node: Ranges399836 +Node: BEGIN/END402944 +Node: Using BEGIN/END403705 +Ref: Using BEGIN/END-Footnote-1406441 +Node: I/O And BEGIN/END406547 +Node: BEGINFILE/ENDFILE408861 +Node: Empty411768 +Node: Using Shell Variables412085 +Node: Action Overview414359 +Node: Statements416684 +Node: If Statement418532 +Node: While Statement420027 +Node: Do Statement422055 +Node: For Statement423203 +Node: Switch Statement426361 +Node: Break Statement428747 +Node: Continue Statement430839 +Node: Next Statement432666 +Node: Nextfile Statement435049 +Node: Exit Statement437701 +Node: Built-in Variables440104 +Node: User-modified441237 +Node: Auto-set448823 +Ref: Auto-set-Footnote-1463210 +Ref: Auto-set-Footnote-2463416 +Node: ARGC and ARGV463472 +Node: Pattern Action Summary467685 +Node: Arrays470115 +Node: Array Basics471444 +Node: Array Intro472288 +Ref: figure-array-elements474263 +Ref: Array Intro-Footnote-1476967 +Node: Reference to Elements477095 +Node: Assigning Elements479559 +Node: Array Example480050 +Node: Scanning an Array481809 +Node: Controlling Scanning484831 +Ref: Controlling Scanning-Footnote-1490230 +Node: Numeric Array Subscripts490546 +Node: Uninitialized Subscripts492730 +Node: Delete494349 +Ref: Delete-Footnote-1497101 +Node: Multidimensional497158 +Node: Multiscanning500253 +Node: Arrays of Arrays501844 +Node: Arrays Summary506611 +Node: Functions508704 +Node: Built-in509742 +Node: Calling Built-in510820 +Node: Numeric Functions512816 +Ref: Numeric Functions-Footnote-1517649 +Ref: Numeric Functions-Footnote-2518006 +Ref: Numeric Functions-Footnote-3518054 +Node: String Functions518326 +Ref: String Functions-Footnote-1541830 +Ref: String Functions-Footnote-2541958 +Ref: String Functions-Footnote-3542206 +Node: Gory Details542293 +Ref: table-sub-escapes544084 +Ref: table-sub-proposed545603 +Ref: table-posix-sub546966 +Ref: table-gensub-escapes548507 +Ref: Gory Details-Footnote-1549330 +Node: I/O Functions549481 +Ref: I/O Functions-Footnote-1556701 +Node: Time Functions556849 +Ref: Time Functions-Footnote-1567354 +Ref: Time Functions-Footnote-2567422 +Ref: Time Functions-Footnote-3567580 +Ref: Time Functions-Footnote-4567691 +Ref: Time Functions-Footnote-5567803 +Ref: Time Functions-Footnote-6568030 +Node: Bitwise Functions568296 +Ref: table-bitwise-ops568890 +Ref: Bitwise Functions-Footnote-1573228 +Node: Type Functions573401 +Node: I18N Functions576062 +Node: User-defined577713 +Node: Definition Syntax578518 +Ref: Definition Syntax-Footnote-1584205 +Node: Function Example584276 +Ref: Function Example-Footnote-1587198 +Node: Function Caveats587220 +Node: Calling A Function587738 +Node: Variable Scope588696 +Node: Pass By Value/Reference591690 +Node: Return Statement595189 +Node: Dynamic Typing598168 +Node: Indirect Calls599098 +Ref: Indirect Calls-Footnote-1609349 +Node: Functions Summary609477 +Node: Library Functions612182 +Ref: Library Functions-Footnote-1615789 +Ref: Library Functions-Footnote-2615932 +Node: Library Names616103 +Ref: Library Names-Footnote-1619563 +Ref: Library Names-Footnote-2619786 +Node: General Functions619872 +Node: Strtonum Function620975 +Node: Assert Function623997 +Node: Round Function627323 +Node: Cliff Random Function628864 +Node: Ordinal Functions629880 +Ref: Ordinal Functions-Footnote-1632943 +Ref: Ordinal Functions-Footnote-2633195 +Node: Join Function633405 +Ref: Join Function-Footnote-1635175 +Node: Getlocaltime Function635375 +Node: Readfile Function639117 +Node: Shell Quoting641089 +Node: Data File Management642490 +Node: Filetrans Function643122 +Node: Rewind Function647218 +Node: File Checking648604 +Ref: File Checking-Footnote-1649938 +Node: Empty Files650139 +Node: Ignoring Assigns652118 +Node: Getopt Function653668 +Ref: Getopt Function-Footnote-1665137 +Node: Passwd Functions665337 +Ref: Passwd Functions-Footnote-1674176 +Node: Group Functions674264 +Ref: Group Functions-Footnote-1682161 +Node: Walking Arrays682368 +Node: Library Functions Summary685376 +Node: Library Exercises686782 +Node: Sample Programs687247 +Node: Running Examples688017 +Node: Clones688745 +Node: Cut Program689969 +Node: Egrep Program699690 +Ref: Egrep Program-Footnote-1707202 +Node: Id Program707312 +Node: Split Program710992 +Ref: Split Program-Footnote-1714451 +Node: Tee Program714580 +Node: Uniq Program717370 +Node: Wc Program724796 +Ref: Wc Program-Footnote-1729051 +Node: Miscellaneous Programs729145 +Node: Dupword Program730358 +Node: Alarm Program732388 +Node: Translate Program737243 +Ref: Translate Program-Footnote-1741808 +Node: Labels Program742078 +Ref: Labels Program-Footnote-1745429 +Node: Word Sorting745513 +Node: History Sorting749585 +Node: Extract Program751420 +Node: Simple Sed758949 +Node: Igawk Program762023 +Ref: Igawk Program-Footnote-1776354 +Ref: Igawk Program-Footnote-2776556 +Ref: Igawk Program-Footnote-3776678 +Node: Anagram Program776793 +Node: Signature Program779855 +Node: Programs Summary781102 +Node: Programs Exercises782316 +Ref: Programs Exercises-Footnote-1786445 +Node: Advanced Features786536 +Node: Nondecimal Data788526 +Node: Array Sorting790117 +Node: Controlling Array Traversal790817 +Ref: Controlling Array Traversal-Footnote-1799184 +Node: Array Sorting Functions799302 +Ref: Array Sorting Functions-Footnote-1804393 +Node: Two-way I/O804589 +Ref: Two-way I/O-Footnote-1810409 +Ref: Two-way I/O-Footnote-2810596 +Node: TCP/IP Networking810678 +Node: Profiling813796 +Node: Advanced Features Summary822250 +Node: Internationalization824094 +Node: I18N and L10N825574 +Node: Explaining gettext826261 +Ref: Explaining gettext-Footnote-1831284 +Ref: Explaining gettext-Footnote-2831469 +Node: Programmer i18n831634 +Ref: Programmer i18n-Footnote-1836489 +Node: Translator i18n836538 +Node: String Extraction837332 +Ref: String Extraction-Footnote-1838464 +Node: Printf Ordering838550 +Ref: Printf Ordering-Footnote-1841336 +Node: I18N Portability841400 +Ref: I18N Portability-Footnote-1843856 +Node: I18N Example843919 +Ref: I18N Example-Footnote-1846725 +Node: Gawk I18N846798 +Node: I18N Summary847443 +Node: Debugger848784 +Node: Debugging849806 +Node: Debugging Concepts850247 +Node: Debugging Terms852056 +Node: Awk Debugging854631 +Node: Sample Debugging Session855537 +Node: Debugger Invocation856071 +Node: Finding The Bug857457 +Node: List of Debugger Commands863935 +Node: Breakpoint Control865268 +Node: Debugger Execution Control868962 +Node: Viewing And Changing Data872324 +Node: Execution Stack875698 +Node: Debugger Info877335 +Node: Miscellaneous Debugger Commands881406 +Node: Readline Support886494 +Node: Limitations887390 +Ref: Limitations-Footnote-1891621 +Node: Debugging Summary891672 +Node: Arbitrary Precision Arithmetic892951 +Node: Computer Arithmetic894367 +Ref: table-numeric-ranges897958 +Ref: Computer Arithmetic-Footnote-1898680 +Node: Math Definitions898737 +Ref: table-ieee-formats902051 +Ref: Math Definitions-Footnote-1902654 +Node: MPFR features902759 +Node: FP Math Caution904476 +Ref: FP Math Caution-Footnote-1905548 +Node: Inexactness of computations905917 +Node: Inexact representation906877 +Node: Comparing FP Values908237 +Node: Errors accumulate909319 +Node: Getting Accuracy910752 +Node: Try To Round913462 +Node: Setting precision914361 +Ref: table-predefined-precision-strings915058 +Node: Setting the rounding mode916888 +Ref: table-gawk-rounding-modes917262 +Ref: Setting the rounding mode-Footnote-1920670 +Node: Arbitrary Precision Integers920849 +Ref: Arbitrary Precision Integers-Footnote-1925766 +Node: POSIX Floating Point Problems925915 +Ref: POSIX Floating Point Problems-Footnote-1929797 +Node: Floating point summary929835 +Node: Dynamic Extensions932025 +Node: Extension Intro933578 +Node: Plugin License934844 +Node: Extension Mechanism Outline935641 +Ref: figure-load-extension936080 +Ref: figure-register-new-function937645 +Ref: figure-call-new-function938737 +Node: Extension API Description940799 +Node: Extension API Functions Introduction942331 +Node: General Data Types947190 +Ref: General Data Types-Footnote-1953145 +Node: Memory Allocation Functions953444 +Ref: Memory Allocation Functions-Footnote-1956289 +Node: Constructor Functions956388 +Node: Registration Functions958133 +Node: Extension Functions958818 +Node: Exit Callback Functions961117 +Node: Extension Version String962367 +Node: Input Parsers963030 +Node: Output Wrappers972915 +Node: Two-way processors977427 +Node: Printing Messages979691 +Ref: Printing Messages-Footnote-1980765 +Node: Updating ERRNO980918 +Node: Requesting Values981657 +Ref: table-value-types-returned982394 +Node: Accessing Parameters983277 +Node: Symbol Table Access984512 +Node: Symbol table by name985024 +Node: Symbol table by cookie987045 +Ref: Symbol table by cookie-Footnote-1991194 +Node: Cached values991258 +Ref: Cached values-Footnote-1994759 +Node: Array Manipulation994850 +Ref: Array Manipulation-Footnote-1995941 +Node: Array Data Types995978 +Ref: Array Data Types-Footnote-1998636 +Node: Array Functions998728 +Node: Flattening Arrays1002586 +Node: Creating Arrays1009494 +Node: Redirection API1014265 +Node: Extension API Variables1017096 +Node: Extension Versioning1017729 +Node: Extension API Informational Variables1019620 +Node: Extension API Boilerplate1020684 +Node: Finding Extensions1024498 +Node: Extension Example1025057 +Node: Internal File Description1025855 +Node: Internal File Ops1029935 +Ref: Internal File Ops-Footnote-11041697 +Node: Using Internal File Ops1041837 +Ref: Using Internal File Ops-Footnote-11044220 +Node: Extension Samples1044494 +Node: Extension Sample File Functions1046023 +Node: Extension Sample Fnmatch1053672 +Node: Extension Sample Fork1055159 +Node: Extension Sample Inplace1056377 +Node: Extension Sample Ord1059587 +Node: Extension Sample Readdir1060423 +Ref: table-readdir-file-types1061312 +Node: Extension Sample Revout1062117 +Node: Extension Sample Rev2way1062706 +Node: Extension Sample Read write array1063446 +Node: Extension Sample Readfile1065388 +Node: Extension Sample Time1066483 +Node: Extension Sample API Tests1067831 +Node: gawkextlib1068323 +Node: Extension summary1070770 +Node: Extension Exercises1074462 +Node: Language History1075959 +Node: V7/SVR3.11077615 +Node: SVR41079767 +Node: POSIX1081201 +Node: BTL1082580 +Node: POSIX/GNU1083309 +Node: Feature History1089171 +Node: Common Extensions1103541 +Node: Ranges and Locales1104824 +Ref: Ranges and Locales-Footnote-11109440 +Ref: Ranges and Locales-Footnote-21109467 +Ref: Ranges and Locales-Footnote-31109702 +Node: Contributors1109923 +Node: History summary1115492 +Node: Installation1116872 +Node: Gawk Distribution1117816 +Node: Getting1118300 +Node: Extracting1119261 +Node: Distribution contents1120899 +Node: Unix Installation1126993 +Node: Quick Installation1127675 +Node: Shell Startup Files1130089 +Node: Additional Configuration Options1131167 +Node: Configuration Philosophy1132972 +Node: Non-Unix Installation1135341 +Node: PC Installation1135799 +Node: PC Binary Installation1137119 +Node: PC Compiling1138971 +Ref: PC Compiling-Footnote-11141995 +Node: PC Testing1142104 +Node: PC Using1143284 +Node: Cygwin1147398 +Node: MSYS1148168 +Node: VMS Installation1148669 +Node: VMS Compilation1149460 +Ref: VMS Compilation-Footnote-11150689 +Node: VMS Dynamic Extensions1150747 +Node: VMS Installation Details1152432 +Node: VMS Running1154685 +Node: VMS GNV1158964 +Node: VMS Old Gawk1159699 +Node: Bugs1160170 +Node: Other Versions1164367 +Node: Installation summary1170951 +Node: Notes1172009 +Node: Compatibility Mode1172874 +Node: Additions1173656 +Node: Accessing The Source1174581 +Node: Adding Code1176016 +Node: New Ports1182235 +Node: Derived Files1186723 +Ref: Derived Files-Footnote-11192208 +Ref: Derived Files-Footnote-21192243 +Ref: Derived Files-Footnote-31192841 +Node: Future Extensions1192955 +Node: Implementation Limitations1193613 +Node: Extension Design1194796 +Node: Old Extension Problems1195950 +Ref: Old Extension Problems-Footnote-11197468 +Node: Extension New Mechanism Goals1197525 +Ref: Extension New Mechanism Goals-Footnote-11200889 +Node: Extension Other Design Decisions1201078 +Node: Extension Future Growth1203191 +Node: Old Extension Mechanism1204027 +Node: Notes summary1205790 +Node: Basic Concepts1206972 +Node: Basic High Level1207653 +Ref: figure-general-flow1207935 +Ref: figure-process-flow1208620 +Ref: Basic High Level-Footnote-11211921 +Node: Basic Data Typing1212106 +Node: Glossary1215434 +Node: Copying1247380 +Node: GNU Free Documentation License1284919 +Node: Index1310037 End Tag Table |