summaryrefslogtreecommitdiff
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1432
1 files changed, 752 insertions, 680 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index afdc99b9..90ae5848 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -246,6 +246,7 @@ entitled "GNU Free Documentation License".
* Special Caveats:: Things to watch out for.
* Close Files And Pipes:: Closing Input and Output Files and
Pipes.
+* Nonfatal:: Enabling Nonfatal Output.
* Output Summary:: Output summary.
* Output Exercises:: Exercises.
* Values:: Constants, Variables, and Regular
@@ -954,7 +955,7 @@ provided in *note Language History::. The language described in this
Info file is often referred to as "new `awk'." By analogy, the
original version of `awk' is referred to as "old `awk'."
- Today, on most systems, when you run the `awk' utility you get some
+ On most current systems, when you run the `awk' utility you get some
version of new `awk'.(1) If your system's standard `awk' is the old
one, you will see something like this if you try the test program:
@@ -1874,7 +1875,7 @@ file surrounded by double quotes:

File: gawk.info, Node: Sample Data Files, Next: Very Simple, Prev: Running gawk, Up: Getting Started
-1.2 Data Files for the Examples
+1.2 Data files for the Examples
===============================
Many of the examples in this Info file take their input from two sample
@@ -3013,7 +3014,8 @@ used by regular users:
`GAWK_SOCK_RETRIES'
Controls the number of times `gawk' attempts to retry a two-way
TCP/IP (socket) connection before giving up. *Note TCP/IP
- Networking::.
+ Networking::. Note that when nonfatal I/O is enabled (*note
+ Nonfatal::), `gawk' only tries to open a TCP/IP socket once.
`POSIXLY_CORRECT'
Causes `gawk' to switch to POSIX-compatibility mode, disabling all
@@ -5098,9 +5100,9 @@ the built-in variable `FIELDWIDTHS'. Each number specifies the width
of the field, _including_ columns between fields. If you want to
ignore the columns between fields, you can specify the width as a
separate field that is subsequently ignored. It is a fatal error to
-supply a field width that is not a positive number. The following data
-is the output of the Unix `w' utility. It is useful to illustrate the
-use of `FIELDWIDTHS':
+supply a field width that has a negative value. The following data is
+the output of the Unix `w' utility. It is useful to illustrate the use
+of `FIELDWIDTHS':
10:06pm up 21 days, 14:04, 23 users
User tty login idle JCPU PCPU what
@@ -6128,6 +6130,7 @@ function.
`gawk' allows access to inherited file
descriptors.
* Close Files And Pipes:: Closing Input and Output Files and Pipes.
+* Nonfatal:: Enabling Nonfatal Output.
* Output Summary:: Output summary.
* Output Exercises:: Exercises.
@@ -6525,7 +6528,7 @@ which they may appear:
messages at runtime. *Note Printf Ordering::, which describes how
and why to use positional specifiers. For now, we ignore them.
-`- (Minus)'
+`-' (Minus)
The minus sign, used before the width modifier (see later on in
this list), says to left-justify the argument within its specified
width. Normally, the argument is printed right-justified in the
@@ -6535,7 +6538,7 @@ which they may appear:
prints `foo*'.
-`SPACE'
+SPACE
For numeric conversions, prefix positive values with a space and
negative values with a minus sign.
@@ -6580,7 +6583,7 @@ which they may appear:
programs. For information on appropriate quoting tricks, see
*note Quoting::.
-`WIDTH'
+WIDTH
This is a number specifying the desired minimum width of a field.
Inserting any number between the `%' sign and the format-control
character forces the field to expand to this width. The default
@@ -6958,7 +6961,7 @@ option (*note Options::).

File: gawk.info, Node: Special Files, Next: Close Files And Pipes, Prev: Special FD, Up: Printing
-5.8 Special File Names in `gawk'
+5.8 Special File names in `gawk'
================================
Besides access to standard input, standard output, and standard error,
@@ -7019,7 +7022,7 @@ mentioned here only for completeness. Full discussion is delayed until

File: gawk.info, Node: Special Caveats, Prev: Special Network, Up: Special Files
-5.8.3 Special File Name Caveats
+5.8.3 Special File name Caveats
-------------------------------
Here are some things to bear in mind when using the special file names
@@ -7041,7 +7044,7 @@ that `gawk' provides:
behavior.

-File: gawk.info, Node: Close Files And Pipes, Next: Output Summary, Prev: Special Files, Up: Printing
+File: gawk.info, Node: Close Files And Pipes, Next: Nonfatal, Prev: Special Files, Up: Printing
5.9 Closing Input and Output Redirections
=========================================
@@ -7210,9 +7213,68 @@ call. See the system manual pages for information on how to decode this
value.

-File: gawk.info, Node: Output Summary, Next: Output Exercises, Prev: Close Files And Pipes, Up: Printing
+File: gawk.info, Node: Nonfatal, Next: Output Summary, Prev: Close Files And Pipes, Up: Printing
-5.10 Summary
+5.10 Enabling Nonfatal Output
+=============================
+
+This minor node describes a `gawk'-specific feature.
+
+ In standard `awk', output with `print' or `printf' to a nonexistent
+file, or some other I/O error (such as filling up the disk) is a fatal
+error.
+
+ $ gawk 'BEGIN { print "hi" > "/no/such/file" }'
+ error--> gawk: cmd. line:1: fatal: can't redirect to `/no/such/file' (No such file or directory)
+
+ `gawk' makes it possible to detect that an error has occurred,
+allowing you to possibly recover from the error, or at least print an
+error message of your choosing before exiting. You can do this in one
+of two ways:
+
+ * For all output files, by assigning any value to
+ `PROCINFO["NONFATAL"]'.
+
+ * On a per-file basis, by assigning any value to `PROCINFO[FILENAME,
+ "NONFATAL"]'. Here, FILENAME is the name of the file to which you
+ wish output to be nonfatal.
+
+ Once you have enabled nonfatal output, you must check `ERRNO' after
+every relevant `print' or `printf' statement to see if something went
+wrong. It is also a good idea to initialize `ERRNO' to zero before
+attempting the output. For example:
+
+ $ gawk '
+ > BEGIN {
+ > PROCINFO["NONFATAL"] = 1
+ > ERRNO = 0
+ > print "hi" > "/no/such/file"
+ > if (ERRNO) {
+ > print("Output failed:", ERRNO) > "/dev/stderr"
+ > exit 1
+ > }
+ > }'
+ error--> Output failed: No such file or directory
+
+ Here, `gawk' did not produce a fatal error; instead it let the `awk'
+program code detect the problem and handle it.
+
+ This mechanism works also for standard output and standard error.
+For standard output, you may use `PROCINFO["-", "NONFATAL"]' or
+`PROCINFO["/dev/stdout", "NONFATAL"]'. For standard error, use
+`PROCINFO["/dev/stderr", "NONFATAL"]'.
+
+ When attempting to open a TCP/IP socket (*note TCP/IP Networking::),
+`gawk' tries multiple times. The `GAWK_SOCK_RETRIES' environment
+variable (*note Other Environment Variables::) allows you to override
+`gawk''s builtin default number of attempts. However, once nonfatal
+I/O is enabled for a given socket, `gawk' only retries once, relying on
+`awk'-level code to notice that there was a problem.
+
+
+File: gawk.info, Node: Output Summary, Next: Output Exercises, Prev: Nonfatal, Up: Printing
+
+5.11 Summary
============
* The `print' statement prints comma-separated expressions. Each
@@ -7234,11 +7296,16 @@ File: gawk.info, Node: Output Summary, Next: Output Exercises, Prev: Close Fi
For coprocesses, it is possible to close only one direction of the
communications.
+ * Normally errors with `print' or `printf' are fatal. `gawk' lets
+ you make output errors be nonfatal either for all files or on a
+ per-file basis. You must then check for errors after every
+ relevant output statement.
+

File: gawk.info, Node: Output Exercises, Prev: Output Summary, Up: Printing
-5.11 Exercises
+5.12 Exercises
==============
1. Rewrite the program:
@@ -9821,12 +9888,12 @@ divisor of any integer, and also identifies prime numbers:
# find smallest divisor of num
{
num = $1
- for (div = 2; div * div <= num; div++) {
- if (num % div == 0)
+ for (divisor = 2; divisor * divisor <= num; divisor++) {
+ if (num % divisor == 0)
break
}
- if (num % div == 0)
- printf "Smallest divisor of %d is %d\n", num, div
+ if (num % divisor == 0)
+ printf "Smallest divisor of %d is %d\n", num, divisor
else
printf "%d is prime\n", num
}
@@ -9844,12 +9911,12 @@ Statement::.)
# find smallest divisor of num
{
num = $1
- for (div = 2; ; div++) {
- if (num % div == 0) {
- printf "Smallest divisor of %d is %d\n", num, div
+ for (divisor = 2; ; divisor++) {
+ if (num % divisor == 0) {
+ printf "Smallest divisor of %d is %d\n", num, divisor
break
}
- if (div * div > num) {
+ if (divisor * divisor > num) {
printf "%d is prime\n", num
break
}
@@ -10184,15 +10251,14 @@ description of each variable.)
`IGNORECASE #'
If `IGNORECASE' is nonzero or non-null, then all string comparisons
- and all regular expression matching are case-independent. Thus,
- regexp matching with `~' and `!~', as well as the `gensub()',
+ and all regular expression matching are case-independent. This
+ applies to regexp matching with `~' and `!~', the `gensub()',
`gsub()', `index()', `match()', `patsplit()', `split()', and
`sub()' functions, record termination with `RS', and field
- splitting with `FS' and `FPAT', all ignore case when doing their
- particular regexp operations. However, the value of `IGNORECASE'
- does _not_ affect array subscripting and it does not affect field
- splitting when using a single-character field separator. *Note
- Case-sensitivity::.
+ splitting with `FS' and `FPAT'. However, the value of
+ `IGNORECASE' does _not_ affect array subscripting and it does not
+ affect field splitting when using a single-character field
+ separator. *Note Case-sensitivity::.
`LINT #'
When this variable is true (nonzero or non-null), `gawk' behaves
@@ -10867,7 +10933,7 @@ be used as an array index.
including a specification of how many elements or components they
contain. In such languages, the declaration causes a contiguous block
of memory to be allocated for that many elements. Usually, an index in
-the array must be a positive integer. For example, the index zero
+the array must be a nonnegative integer. For example, the index zero
specifies the first element in the array, which is actually stored at
the beginning of the block of memory. Index one specifies the second
element, which is stored in memory right after the first element, and
@@ -10922,8 +10988,8 @@ It has elements 0-3 and 10, but doesn't have elements 4, 5, 6, 7, 8, or
9.
Another consequence of associative arrays is that the indices don't
-have to be positive integers. Any number, or even a string, can be an
-index. For example, the following is an array that translates words
+have to be nonnegative integers. Any number, or even a string, can be
+an index. For example, the following is an array that translates words
from English to French:
Index Value
@@ -11094,7 +11160,7 @@ File: gawk.info, Node: Scanning an Array, Next: Controlling Scanning, Prev: A
In programs that use arrays, it is often necessary to use a loop that
executes once for each element of an array. In other languages, where
-arrays are contiguous and indices are limited to positive integers,
+arrays are contiguous and indices are limited to nonnegative integers,
this is easy: all the valid indices can be found by counting from the
lowest index up to the highest. This technique won't do the job in
`awk', because any number or string can be an array index. So `awk'
@@ -12030,7 +12096,7 @@ numbers.
(2) `mawk' uses a different seed each time.
(3) Computer-generated random numbers really are not truly random.
-They are technically known as "pseudorandom." This means that although
+They are technically known as "pseudorandom". This means that although
the numbers in a sequence appear to be random, you can in fact generate
the same sequence of random numbers over and over again.
@@ -14318,61 +14384,7 @@ names of the two comparison functions:
-| rsort: <100.0 95.6 93.4 87.1>
Another example where indirect functions calls are useful can be
-found in processing arrays. *note Walking Arrays::, presented a simple
-function for "walking" an array of arrays. That function simply
-printed the name and value of each scalar array element. However, it is
-easy to generalize that function, by passing in the name of a function
-to call when walking an array. The modified function looks like this:
-
- function process_array(arr, name, process, do_arrays, i, new_name)
- {
- for (i in arr) {
- new_name = (name "[" i "]")
- if (isarray(arr[i])) {
- if (do_arrays)
- @process(new_name, arr[i])
- process_array(arr[i], new_name, process, do_arrays)
- } else
- @process(new_name, arr[i])
- }
- }
-
- The arguments are as follows:
-
-`arr'
- The array.
-
-`name'
- The name of the array (a string).
-
-`process'
- The name of the function to call.
-
-`do_arrays'
- If this is true, the function can handle elements that are
- subarrays.
-
- If subarrays are to be processed, that is done before walking them
-further.
-
- When run with the following scaffolding, the function produces the
-same results as does the earlier `walk_array()' function:
-
- BEGIN {
- a[1] = 1
- a[2][1] = 21
- a[2][2] = 22
- a[3] = 3
- a[4][1][1] = 411
- a[4][2] = 42
-
- process_array(a, "a", "do_print", 0)
- }
-
- function do_print(name, element)
- {
- printf "%s = %s\n", name, element
- }
+found in processing arrays. This is described in *note Walking Arrays::.
Remember that you must supply a leading `@' in front of an indirect
function call.
@@ -15240,7 +15252,7 @@ three-character string `"\"'\""':

File: gawk.info, Node: Data File Management, Next: Getopt Function, Prev: General Functions, Up: Library Functions
-10.3 Data File Management
+10.3 Data file Management
=========================
This minor node presents functions that are useful for managing
@@ -15257,7 +15269,7 @@ command-line data files.

File: gawk.info, Node: Filetrans Function, Next: Rewind Function, Up: Data File Management
-10.3.1 Noting Data File Boundaries
+10.3.1 Noting Data file Boundaries
----------------------------------
The `BEGIN' and `END' rules are each executed exactly once, at the
@@ -15395,7 +15407,7 @@ rule finishes!)

File: gawk.info, Node: File Checking, Next: Empty Files, Prev: Rewind Function, Up: Data File Management
-10.3.3 Checking for Readable Data Files
+10.3.3 Checking for Readable Data files
---------------------------------------
Normally, if you give `awk' a data file that isn't readable, it stops
@@ -15485,7 +15497,7 @@ of the `for' loop uses the `<=' operator, not `<'.

File: gawk.info, Node: Ignoring Assigns, Prev: Empty Files, Up: Data File Management
-10.3.5 Treating Assignments as File Names
+10.3.5 Treating Assignments as File names
-----------------------------------------
Occasionally, you might not want `awk' to process command-line variable
@@ -16349,6 +16361,61 @@ value. Here is a main program to demonstrate:
-| a[4][1][1] = 411
-| a[4][2] = 42
+ The function just presented simply prints the name and value of each
+scalar array element. However, it is easy to generalize it, by passing
+in the name of a function to call when walking an array. The modified
+function looks like this:
+
+ function process_array(arr, name, process, do_arrays, i, new_name)
+ {
+ for (i in arr) {
+ new_name = (name "[" i "]")
+ if (isarray(arr[i])) {
+ if (do_arrays)
+ @process(new_name, arr[i])
+ process_array(arr[i], new_name, process, do_arrays)
+ } else
+ @process(new_name, arr[i])
+ }
+ }
+
+ The arguments are as follows:
+
+`arr'
+ The array.
+
+`name'
+ The name of the array (a string).
+
+`process'
+ The name of the function to call.
+
+`do_arrays'
+ If this is true, the function can handle elements that are
+ subarrays.
+
+ If subarrays are to be processed, that is done before walking them
+further.
+
+ When run with the following scaffolding, the function produces the
+same results as does the earlier version of `walk_array()':
+
+ BEGIN {
+ a[1] = 1
+ a[2][1] = 21
+ a[2][2] = 22
+ a[3] = 3
+ a[4][1][1] = 411
+ a[4][2] = 42
+
+ process_array(a, "a", "do_print", 0)
+ }
+
+ function do_print(name, element)
+ {
+ printf "%s = %s\n", name, element
+ }
+

File: gawk.info, Node: Library Functions Summary, Next: Library Exercises, Prev: Walking Arrays, Up: Library Functions
@@ -16383,7 +16450,7 @@ File: gawk.info, Node: Library Functions Summary, Next: Library Exercises, Pr
Two sets of routines that parallel the C library versions
Traversing arrays of arrays
- A simple function to traverse an array of arrays to any depth
+ Two functions that traverse an array of arrays to any depth

@@ -21836,8 +21903,7 @@ Integer arithmetic
In computers, integer values come in two flavors: "signed" and
"unsigned". Signed values may be negative or positive, whereas
- unsigned values are always positive (i.e., greater than or equal
- to zero).
+ unsigned values are always greater than or equal to zero.
In computer systems, integer arithmetic is exact, but the possible
range of values is limited. Integer arithmetic is generally
@@ -22677,9 +22743,9 @@ File: gawk.info, Node: Floating point summary, Prev: POSIX Floating Point Prob
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
- to be aware of them.
+ * There are several areas with respect to floating-point numbers
+ where `gawk' disagrees with the POSIX standard. It pays to be
+ aware of them.
* Overall, there is no need to be unduly suspicious about the
results from floating-point arithmetic. The lesson to remember is
@@ -23272,14 +23338,14 @@ This node presents them all as function prototypes, in the way that
extension code would use them:
`static inline awk_value_t *'
-`make_const_string(const char *string, size_t length, awk_value_t *result)'
+`make_const_string(const char *string, size_t length, awk_value_t *result);'
This function creates a string value in the `awk_value_t' variable
pointed to by `result'. It expects `string' to be a C string
constant (or other string data), and automatically creates a
_copy_ of the data for storage in `result'. It returns `result'.
`static inline awk_value_t *'
-`make_malloced_string(const char *string, size_t length, awk_value_t *result)'
+`make_malloced_string(const char *string, size_t length, awk_value_t *result);'
This function creates a string value in the `awk_value_t' variable
pointed to by `result'. It expects `string' to be a `char *' value
pointing to data previously obtained from `gawk_malloc()',
@@ -23288,13 +23354,13 @@ extension code would use them:
for it. It returns `result'.
`static inline awk_value_t *'
-`make_null_string(awk_value_t *result)'
+`make_null_string(awk_value_t *result);'
This specialized function creates a null string (the "undefined"
value) in the `awk_value_t' variable pointed to by `result'. It
returns `result'.
`static inline awk_value_t *'
-`make_number(double num, awk_value_t *result)'
+`make_number(double num, awk_value_t *result);'
This function simply creates a numeric value in the `awk_value_t'
variable pointed to by `result'.
@@ -26479,6 +26545,9 @@ the current version of `gawk'.
- Directories on the command line produce a warning and are
skipped (*note Command-line directories::)
+ - Output with `print' and `printf' need not be fatal (*note
+ Nonfatal::)
+
* New keywords:
- The `BEGINFILE' and `ENDFILE' special patterns (*note
@@ -26994,6 +27063,8 @@ in POSIX `awk', in the order they were added to `gawk'.
* The maximum number of hexdecimal digits in `\x' escapes is now two.
*Note Escape Sequences::.
+ * Nonfatal output with `print' and `printf'. *Note Nonfatal::.
+
* Support for MirBSD was removed.

@@ -32674,7 +32745,7 @@ Index
(line 6)
* differences in awk and gawk, line continuations: Conditional Exp.
(line 34)
-* differences in awk and gawk, LINT variable: User-modified. (line 88)
+* differences in awk and gawk, LINT variable: User-modified. (line 87)
* differences in awk and gawk, match() function: String Functions.
(line 263)
* differences in awk and gawk, print/printf statements: Format Modifiers.
@@ -32699,7 +32770,7 @@ Index
(line 77)
* differences in awk and gawk, SYMTAB variable: Auto-set. (line 283)
* differences in awk and gawk, TEXTDOMAIN variable: User-modified.
- (line 152)
+ (line 151)
* differences in awk and gawk, trunc-mod operation: Arithmetic Ops.
(line 66)
* directories, command-line: Command-line directories.
@@ -33162,7 +33233,7 @@ Index
(line 6)
* gawk, interval expressions and: Regexp Operators. (line 139)
* gawk, line continuation in: Conditional Exp. (line 34)
-* gawk, LINT variable in: User-modified. (line 88)
+* gawk, LINT variable in: User-modified. (line 87)
* gawk, list of contributors to: Contributors. (line 6)
* gawk, MS-DOS version of: PC Using. (line 10)
* gawk, MS-Windows version of: PC Using. (line 10)
@@ -33188,7 +33259,7 @@ Index
* gawk, splitting fields and: Constant Size. (line 87)
* gawk, string-translation functions: I18N Functions. (line 6)
* gawk, SYMTAB array in: Auto-set. (line 283)
-* gawk, TEXTDOMAIN variable in: User-modified. (line 152)
+* gawk, TEXTDOMAIN variable in: User-modified. (line 151)
* gawk, timestamps: Time Functions. (line 6)
* gawk, uses for: Preface. (line 34)
* gawk, versions of, information about, printing: Options. (line 300)
@@ -33392,7 +33463,7 @@ Index
* internationalization: I18N Functions. (line 6)
* internationalization, localization <1>: Internationalization.
(line 13)
-* internationalization, localization: User-modified. (line 152)
+* internationalization, localization: User-modified. (line 151)
* internationalization, localization, character classes: Bracket Expressions.
(line 101)
* internationalization, localization, gawk and: Internationalization.
@@ -33502,7 +33573,7 @@ Index
* lines, duplicate, removing: History Sorting. (line 6)
* lines, matching ranges of: Ranges. (line 6)
* lines, skipping between markers: Ranges. (line 43)
-* lint checking: User-modified. (line 88)
+* lint checking: User-modified. (line 87)
* lint checking, array elements: Delete. (line 34)
* lint checking, array subscripts: Uninitialized Subscripts.
(line 43)
@@ -33512,7 +33583,7 @@ Index
(line 339)
* lint checking, undefined functions: Pass By Value/Reference.
(line 85)
-* LINT variable: User-modified. (line 88)
+* LINT variable: User-modified. (line 87)
* Linux <1>: Glossary. (line 753)
* Linux <2>: I18N Example. (line 55)
* Linux: Manual History. (line 28)
@@ -33684,11 +33755,11 @@ Index
* obsolete features: Obsolete. (line 6)
* octal numbers: Nondecimal-numbers. (line 6)
* octal values, enabling interpretation of: Options. (line 211)
-* OFMT variable <1>: User-modified. (line 105)
+* OFMT variable <1>: User-modified. (line 104)
* OFMT variable <2>: Strings And Numbers. (line 57)
* OFMT variable: OFMT. (line 15)
* OFMT variable, POSIX awk and: OFMT. (line 27)
-* OFS variable <1>: User-modified. (line 114)
+* OFS variable <1>: User-modified. (line 113)
* OFS variable <2>: Output Separators. (line 6)
* OFS variable: Changing Fields. (line 64)
* OpenBSD: Glossary. (line 753)
@@ -33741,7 +33812,7 @@ Index
(line 12)
* ord() user-defined function: Ordinal Functions. (line 16)
* order of evaluation, concatenation: Concatenation. (line 41)
-* ORS variable <1>: User-modified. (line 119)
+* ORS variable <1>: User-modified. (line 118)
* ORS variable: Output Separators. (line 21)
* output field separator, See OFS variable: Changing Fields. (line 64)
* output record separator, See ORS variable: Output Separators.
@@ -33881,7 +33952,7 @@ Index
* POSIX, gawk extensions not included in: POSIX/GNU. (line 6)
* POSIX, programs, implementing in awk: Clones. (line 6)
* POSIXLY_CORRECT environment variable: Options. (line 339)
-* PREC variable: User-modified. (line 124)
+* PREC variable: User-modified. (line 123)
* precedence <1>: Precedence. (line 6)
* precedence: Increment Ops. (line 60)
* precedence, regexp operators: Regexp Operators. (line 156)
@@ -33896,7 +33967,7 @@ Index
* print statement, commas, omitting: Print Examples. (line 31)
* print statement, I/O operators in: Precedence. (line 71)
* print statement, line continuations and: Print Examples. (line 76)
-* print statement, OFMT variable and: User-modified. (line 114)
+* print statement, OFMT variable and: User-modified. (line 113)
* print statement, See Also redirection, of output: Redirection.
(line 17)
* print statement, sprintf() function and: Round Function. (line 6)
@@ -34011,7 +34082,7 @@ Index
* readfile() user-defined function: Readfile Function. (line 30)
* reading input files: Reading Files. (line 6)
* recipe for a programming language: History. (line 6)
-* record separators <1>: User-modified. (line 133)
+* record separators <1>: User-modified. (line 132)
* record separators: awk split records. (line 6)
* record separators, changing: awk split records. (line 85)
* record separators, regular expressions as: awk split records.
@@ -34123,8 +34194,8 @@ Index
* round to nearest integer: Numeric Functions. (line 38)
* round() user-defined function: Round Function. (line 16)
* rounding numbers: Round Function. (line 6)
-* ROUNDMODE variable: User-modified. (line 128)
-* RS variable <1>: User-modified. (line 133)
+* ROUNDMODE variable: User-modified. (line 127)
+* RS variable <1>: User-modified. (line 132)
* RS variable: awk split records. (line 12)
* RS variable, multiline records and: Multiple Line. (line 17)
* rshift: Bitwise Functions. (line 53)
@@ -34181,12 +34252,12 @@ Index
* separators, field, FIELDWIDTHS variable and: User-modified. (line 37)
* separators, field, FPAT variable and: User-modified. (line 43)
* separators, field, POSIX and: Fields. (line 6)
-* separators, for records <1>: User-modified. (line 133)
+* separators, for records <1>: User-modified. (line 132)
* separators, for records: awk split records. (line 6)
* separators, for records, regular expressions as: awk split records.
(line 125)
* separators, for statements in actions: Action Overview. (line 19)
-* separators, subscript: User-modified. (line 146)
+* separators, subscript: User-modified. (line 145)
* set breakpoint: Breakpoint Control. (line 11)
* set debugger command: Viewing And Changing Data.
(line 59)
@@ -34318,7 +34389,7 @@ Index
* split.awk program: Split Program. (line 30)
* sprintf <1>: String Functions. (line 384)
* sprintf: OFMT. (line 15)
-* sprintf() function, OFMT variable and: User-modified. (line 114)
+* sprintf() function, OFMT variable and: User-modified. (line 113)
* sprintf() function, print/printf statements and: Round Function.
(line 6)
* sqrt: Numeric Functions. (line 92)
@@ -34380,7 +34451,7 @@ Index
(line 43)
* sub() function, arguments of: String Functions. (line 463)
* sub() function, escape processing: Gory Details. (line 6)
-* subscript separators: User-modified. (line 146)
+* subscript separators: User-modified. (line 145)
* subscripts in arrays, multidimensional: Multidimensional. (line 10)
* subscripts in arrays, multidimensional, scanning: Multiscanning.
(line 11)
@@ -34388,7 +34459,7 @@ Index
(line 6)
* subscripts in arrays, uninitialized variables as: Uninitialized Subscripts.
(line 6)
-* SUBSEP variable: User-modified. (line 146)
+* SUBSEP variable: User-modified. (line 145)
* SUBSEP variable, and multidimensional arrays: Multidimensional.
(line 16)
* substitute in string: String Functions. (line 90)
@@ -34427,7 +34498,7 @@ Index
* text, printing: Print. (line 22)
* text, printing, unduplicated lines of: Uniq Program. (line 6)
* TEXTDOMAIN variable <1>: Programmer i18n. (line 8)
-* TEXTDOMAIN variable: User-modified. (line 152)
+* TEXTDOMAIN variable: User-modified. (line 151)
* TEXTDOMAIN variable, BEGIN pattern and: Programmer i18n. (line 60)
* TEXTDOMAIN variable, portability and: I18N Portability. (line 20)
* textdomain() function (C library): Explaining gettext. (line 28)
@@ -34667,560 +34738,561 @@ Index

Tag Table:
Node: Top1204
-Node: Foreword342225
-Node: Foreword446669
-Node: Preface48200
-Ref: Preface-Footnote-151071
-Ref: Preface-Footnote-251178
-Ref: Preface-Footnote-351411
-Node: History51553
-Node: Names53904
-Ref: Names-Footnote-154997
-Node: This Manual55143
-Ref: This Manual-Footnote-161643
-Node: Conventions61743
-Node: Manual History64080
-Ref: Manual History-Footnote-167073
-Ref: Manual History-Footnote-267114
-Node: How To Contribute67188
-Node: Acknowledgments68317
-Node: Getting Started73183
-Node: Running gawk75622
-Node: One-shot76812
-Node: Read Terminal78076
-Node: Long80107
-Node: Executable Scripts81620
-Ref: Executable Scripts-Footnote-184409
-Node: Comments84512
-Node: Quoting86994
-Node: DOS Quoting92512
-Node: Sample Data Files93187
-Node: Very Simple95782
-Node: Two Rules100681
-Node: More Complex102567
-Node: Statements/Lines105429
-Ref: Statements/Lines-Footnote-1109884
-Node: Other Features110149
-Node: When111085
-Ref: When-Footnote-1112839
-Node: Intro Summary112904
-Node: Invoking Gawk113788
-Node: Command Line115302
-Node: Options116100
-Ref: Options-Footnote-1131895
-Ref: Options-Footnote-2132124
-Node: Other Arguments132149
-Node: Naming Standard Input135097
-Node: Environment Variables136190
-Node: AWKPATH Variable136748
-Ref: AWKPATH Variable-Footnote-1140155
-Ref: AWKPATH Variable-Footnote-2140200
-Node: AWKLIBPATH Variable140460
-Node: Other Environment Variables141716
-Node: Exit Status145234
-Node: Include Files145910
-Node: Loading Shared Libraries149499
-Node: Obsolete150926
-Node: Undocumented151618
-Node: Invoking Summary151885
-Node: Regexp153548
-Node: Regexp Usage155002
-Node: Escape Sequences157039
-Node: Regexp Operators163268
-Ref: Regexp Operators-Footnote-1170678
-Ref: Regexp Operators-Footnote-2170825
-Node: Bracket Expressions170923
-Ref: table-char-classes172938
-Node: Leftmost Longest175880
-Node: Computed Regexps177182
-Node: GNU Regexp Operators180611
-Node: Case-sensitivity184283
-Ref: Case-sensitivity-Footnote-1187168
-Ref: Case-sensitivity-Footnote-2187403
-Node: Regexp Summary187511
-Node: Reading Files188978
-Node: Records191071
-Node: awk split records191804
-Node: gawk split records196733
-Ref: gawk split records-Footnote-1201272
-Node: Fields201309
-Ref: Fields-Footnote-1204087
-Node: Nonconstant Fields204173
-Ref: Nonconstant Fields-Footnote-1206411
-Node: Changing Fields206614
-Node: Field Separators212545
-Node: Default Field Splitting215249
-Node: Regexp Field Splitting216366
-Node: Single Character Fields219716
-Node: Command Line Field Separator220775
-Node: Full Line Fields223992
-Ref: Full Line Fields-Footnote-1225513
-Ref: Full Line Fields-Footnote-2225559
-Node: Field Splitting Summary225660
-Node: Constant Size227734
-Node: Splitting By Content232317
-Ref: Splitting By Content-Footnote-1236282
-Node: Multiple Line236445
-Ref: Multiple Line-Footnote-1242326
-Node: Getline242505
-Node: Plain Getline244712
-Node: Getline/Variable247352
-Node: Getline/File248501
-Node: Getline/Variable/File249886
-Ref: Getline/Variable/File-Footnote-1251489
-Node: Getline/Pipe251576
-Node: Getline/Variable/Pipe254254
-Node: Getline/Coprocess255385
-Node: Getline/Variable/Coprocess256649
-Node: Getline Notes257388
-Node: Getline Summary260182
-Ref: table-getline-variants260594
-Node: Read Timeout261423
-Ref: Read Timeout-Footnote-1265260
-Node: Command-line directories265318
-Node: Input Summary266223
-Node: Input Exercises269608
-Node: Printing270336
-Node: Print272113
-Node: Print Examples273570
-Node: Output Separators276349
-Node: OFMT278367
-Node: Printf279722
-Node: Basic Printf280507
-Node: Control Letters282079
-Node: Format Modifiers286064
-Node: Printf Examples292074
-Node: Redirection294560
-Node: Special FD301398
-Ref: Special FD-Footnote-1304564
-Node: Special Files304638
-Node: Other Inherited Files305255
-Node: Special Network306255
-Node: Special Caveats307117
-Node: Close Files And Pipes308066
-Ref: Close Files And Pipes-Footnote-1315257
-Ref: Close Files And Pipes-Footnote-2315405
-Node: Output Summary315555
-Node: Output Exercises316553
-Node: Expressions317233
-Node: Values318422
-Node: Constants319099
-Node: Scalar Constants319790
-Ref: Scalar Constants-Footnote-1320652
-Node: Nondecimal-numbers320902
-Node: Regexp Constants323912
-Node: Using Constant Regexps324438
-Node: Variables327601
-Node: Using Variables328258
-Node: Assignment Options330169
-Node: Conversion332044
-Node: Strings And Numbers332568
-Ref: Strings And Numbers-Footnote-1335633
-Node: Locale influences conversions335742
-Ref: table-locale-affects338488
-Node: All Operators339080
-Node: Arithmetic Ops339709
-Node: Concatenation342214
-Ref: Concatenation-Footnote-1345033
-Node: Assignment Ops345140
-Ref: table-assign-ops350119
-Node: Increment Ops351429
-Node: Truth Values and Conditions354860
-Node: Truth Values355943
-Node: Typing and Comparison356992
-Node: Variable Typing357808
-Node: Comparison Operators361475
-Ref: table-relational-ops361885
-Node: POSIX String Comparison365380
-Ref: POSIX String Comparison-Footnote-1366452
-Node: Boolean Ops366591
-Ref: Boolean Ops-Footnote-1371069
-Node: Conditional Exp371160
-Node: Function Calls372898
-Node: Precedence376778
-Node: Locales380438
-Node: Expressions Summary382070
-Node: Patterns and Actions384641
-Node: Pattern Overview385761
-Node: Regexp Patterns387440
-Node: Expression Patterns387983
-Node: Ranges391763
-Node: BEGIN/END394870
-Node: Using BEGIN/END395631
-Ref: Using BEGIN/END-Footnote-1398367
-Node: I/O And BEGIN/END398473
-Node: BEGINFILE/ENDFILE400788
-Node: Empty403685
-Node: Using Shell Variables404002
-Node: Action Overview406275
-Node: Statements408601
-Node: If Statement410449
-Node: While Statement411944
-Node: Do Statement413972
-Node: For Statement415120
-Node: Switch Statement418278
-Node: Break Statement420660
-Node: Continue Statement422701
-Node: Next Statement424528
-Node: Nextfile Statement426909
-Node: Exit Statement429537
-Node: Built-in Variables431948
-Node: User-modified433081
-Ref: User-modified-Footnote-1440784
-Node: Auto-set440846
-Ref: Auto-set-Footnote-1454555
-Ref: Auto-set-Footnote-2454760
-Node: ARGC and ARGV454816
-Node: Pattern Action Summary459034
-Node: Arrays461467
-Node: Array Basics462796
-Node: Array Intro463640
-Ref: figure-array-elements465574
-Ref: Array Intro-Footnote-1468194
-Node: Reference to Elements468322
-Node: Assigning Elements470784
-Node: Array Example471275
-Node: Scanning an Array473034
-Node: Controlling Scanning476054
-Ref: Controlling Scanning-Footnote-1481448
-Node: Numeric Array Subscripts481764
-Node: Uninitialized Subscripts483949
-Node: Delete485566
-Ref: Delete-Footnote-1488315
-Node: Multidimensional488372
-Node: Multiscanning491469
-Node: Arrays of Arrays493058
-Node: Arrays Summary497812
-Node: Functions499903
-Node: Built-in500942
-Node: Calling Built-in502020
-Node: Numeric Functions504015
-Ref: Numeric Functions-Footnote-1508833
-Ref: Numeric Functions-Footnote-2509190
-Ref: Numeric Functions-Footnote-3509238
-Node: String Functions509510
-Ref: String Functions-Footnote-1533011
-Ref: String Functions-Footnote-2533140
-Ref: String Functions-Footnote-3533388
-Node: Gory Details533475
-Ref: table-sub-escapes535256
-Ref: table-sub-proposed536771
-Ref: table-posix-sub538133
-Ref: table-gensub-escapes539670
-Ref: Gory Details-Footnote-1540503
-Node: I/O Functions540654
-Ref: I/O Functions-Footnote-1547890
-Node: Time Functions548037
-Ref: Time Functions-Footnote-1558546
-Ref: Time Functions-Footnote-2558614
-Ref: Time Functions-Footnote-3558772
-Ref: Time Functions-Footnote-4558883
-Ref: Time Functions-Footnote-5558995
-Ref: Time Functions-Footnote-6559222
-Node: Bitwise Functions559488
-Ref: table-bitwise-ops560050
-Ref: Bitwise Functions-Footnote-1564378
-Node: Type Functions564550
-Node: I18N Functions565702
-Node: User-defined567349
-Node: Definition Syntax568154
-Ref: Definition Syntax-Footnote-1573813
-Node: Function Example573884
-Ref: Function Example-Footnote-1576805
-Node: Function Caveats576827
-Node: Calling A Function577345
-Node: Variable Scope578303
-Node: Pass By Value/Reference581296
-Node: Return Statement584793
-Node: Dynamic Typing587772
-Node: Indirect Calls588701
-Ref: Indirect Calls-Footnote-1600007
-Node: Functions Summary600135
-Node: Library Functions602837
-Ref: Library Functions-Footnote-1606445
-Ref: Library Functions-Footnote-2606588
-Node: Library Names606759
-Ref: Library Names-Footnote-1610217
-Ref: Library Names-Footnote-2610440
-Node: General Functions610526
-Node: Strtonum Function611629
-Node: Assert Function614651
-Node: Round Function617975
-Node: Cliff Random Function619516
-Node: Ordinal Functions620532
-Ref: Ordinal Functions-Footnote-1623595
-Ref: Ordinal Functions-Footnote-2623847
-Node: Join Function624058
-Ref: Join Function-Footnote-1625828
-Node: Getlocaltime Function626028
-Node: Readfile Function629772
-Node: Shell Quoting631744
-Node: Data File Management633145
-Node: Filetrans Function633777
-Node: Rewind Function637873
-Node: File Checking639259
-Ref: File Checking-Footnote-1640592
-Node: Empty Files640793
-Node: Ignoring Assigns642772
-Node: Getopt Function644322
-Ref: Getopt Function-Footnote-1655786
-Node: Passwd Functions655986
-Ref: Passwd Functions-Footnote-1664826
-Node: Group Functions664914
-Ref: Group Functions-Footnote-1672811
-Node: Walking Arrays673016
-Node: Library Functions Summary674616
-Node: Library Exercises676020
-Node: Sample Programs677300
-Node: Running Examples678070
-Node: Clones678798
-Node: Cut Program680022
-Node: Egrep Program689742
-Ref: Egrep Program-Footnote-1697245
-Node: Id Program697355
-Node: Split Program701031
-Ref: Split Program-Footnote-1704485
-Node: Tee Program704613
-Node: Uniq Program707402
-Node: Wc Program714821
-Ref: Wc Program-Footnote-1719071
-Node: Miscellaneous Programs719165
-Node: Dupword Program720378
-Node: Alarm Program722409
-Node: Translate Program727214
-Ref: Translate Program-Footnote-1731777
-Node: Labels Program732047
-Ref: Labels Program-Footnote-1735398
-Node: Word Sorting735482
-Node: History Sorting739552
-Node: Extract Program741387
-Node: Simple Sed748911
-Node: Igawk Program751981
-Ref: Igawk Program-Footnote-1766307
-Ref: Igawk Program-Footnote-2766508
-Ref: Igawk Program-Footnote-3766630
-Node: Anagram Program766745
-Node: Signature Program769806
-Node: Programs Summary771053
-Node: Programs Exercises772274
-Ref: Programs Exercises-Footnote-1776405
-Node: Advanced Features776496
-Node: Nondecimal Data778478
-Node: Array Sorting780068
-Node: Controlling Array Traversal780768
-Ref: Controlling Array Traversal-Footnote-1789134
-Node: Array Sorting Functions789252
-Ref: Array Sorting Functions-Footnote-1793138
-Node: Two-way I/O793334
-Ref: Two-way I/O-Footnote-1798279
-Ref: Two-way I/O-Footnote-2798465
-Node: TCP/IP Networking798547
-Node: Profiling801419
-Node: Advanced Features Summary809690
-Node: Internationalization811623
-Node: I18N and L10N813103
-Node: Explaining gettext813789
-Ref: Explaining gettext-Footnote-1818814
-Ref: Explaining gettext-Footnote-2818998
-Node: Programmer i18n819163
-Ref: Programmer i18n-Footnote-1824039
-Node: Translator i18n824088
-Node: String Extraction824882
-Ref: String Extraction-Footnote-1826013
-Node: Printf Ordering826099
-Ref: Printf Ordering-Footnote-1828885
-Node: I18N Portability828949
-Ref: I18N Portability-Footnote-1831405
-Node: I18N Example831468
-Ref: I18N Example-Footnote-1834271
-Node: Gawk I18N834343
-Node: I18N Summary834987
-Node: Debugger836327
-Node: Debugging837349
-Node: Debugging Concepts837790
-Node: Debugging Terms839600
-Node: Awk Debugging842172
-Node: Sample Debugging Session843078
-Node: Debugger Invocation843612
-Node: Finding The Bug844997
-Node: List of Debugger Commands851476
-Node: Breakpoint Control852808
-Node: Debugger Execution Control856485
-Node: Viewing And Changing Data859844
-Node: Execution Stack863220
-Node: Debugger Info864855
-Node: Miscellaneous Debugger Commands868900
-Node: Readline Support873901
-Node: Limitations874795
-Node: Debugging Summary876910
-Node: Arbitrary Precision Arithmetic878084
-Node: Computer Arithmetic879500
-Ref: table-numeric-ranges883099
-Ref: Computer Arithmetic-Footnote-1883623
-Node: Math Definitions883680
-Ref: table-ieee-formats886975
-Ref: Math Definitions-Footnote-1887579
-Node: MPFR features887684
-Node: FP Math Caution889355
-Ref: FP Math Caution-Footnote-1890405
-Node: Inexactness of computations890774
-Node: Inexact representation891733
-Node: Comparing FP Values893091
-Node: Errors accumulate894173
-Node: Getting Accuracy895605
-Node: Try To Round898309
-Node: Setting precision899208
-Ref: table-predefined-precision-strings899892
-Node: Setting the rounding mode901721
-Ref: table-gawk-rounding-modes902085
-Ref: Setting the rounding mode-Footnote-1905537
-Node: Arbitrary Precision Integers905716
-Ref: Arbitrary Precision Integers-Footnote-1910614
-Node: POSIX Floating Point Problems910763
-Ref: POSIX Floating Point Problems-Footnote-1914642
-Node: Floating point summary914680
-Node: Dynamic Extensions916876
-Node: Extension Intro918428
-Node: Plugin License919693
-Node: Extension Mechanism Outline920490
-Ref: figure-load-extension920918
-Ref: figure-register-new-function922398
-Ref: figure-call-new-function923402
-Node: Extension API Description925389
-Node: Extension API Functions Introduction926839
-Node: General Data Types931660
-Ref: General Data Types-Footnote-1937560
-Node: Memory Allocation Functions937859
-Ref: Memory Allocation Functions-Footnote-1940698
-Node: Constructor Functions940797
-Node: Registration Functions942532
-Node: Extension Functions943217
-Node: Exit Callback Functions945514
-Node: Extension Version String946762
-Node: Input Parsers947425
-Node: Output Wrappers957300
-Node: Two-way processors961813
-Node: Printing Messages964076
-Ref: Printing Messages-Footnote-1965152
-Node: Updating `ERRNO'965304
-Node: Requesting Values966044
-Ref: table-value-types-returned966771
-Node: Accessing Parameters967728
-Node: Symbol Table Access968962
-Node: Symbol table by name969476
-Node: Symbol table by cookie971496
-Ref: Symbol table by cookie-Footnote-1975641
-Node: Cached values975704
-Ref: Cached values-Footnote-1979200
-Node: Array Manipulation979291
-Ref: Array Manipulation-Footnote-1980389
-Node: Array Data Types980426
-Ref: Array Data Types-Footnote-1983081
-Node: Array Functions983173
-Node: Flattening Arrays987032
-Node: Creating Arrays993934
-Node: Extension API Variables998705
-Node: Extension Versioning999341
-Node: Extension API Informational Variables1001232
-Node: Extension API Boilerplate1002297
-Node: Finding Extensions1006106
-Node: Extension Example1006666
-Node: Internal File Description1007438
-Node: Internal File Ops1011505
-Ref: Internal File Ops-Footnote-11023256
-Node: Using Internal File Ops1023396
-Ref: Using Internal File Ops-Footnote-11025779
-Node: Extension Samples1026052
-Node: Extension Sample File Functions1027580
-Node: Extension Sample Fnmatch1035261
-Node: Extension Sample Fork1036749
-Node: Extension Sample Inplace1037964
-Node: Extension Sample Ord1039640
-Node: Extension Sample Readdir1040476
-Ref: table-readdir-file-types1041353
-Node: Extension Sample Revout1042164
-Node: Extension Sample Rev2way1042753
-Node: Extension Sample Read write array1043493
-Node: Extension Sample Readfile1045433
-Node: Extension Sample Time1046528
-Node: Extension Sample API Tests1047876
-Node: gawkextlib1048367
-Node: Extension summary1051045
-Node: Extension Exercises1054734
-Node: Language History1055456
-Node: V7/SVR3.11057112
-Node: SVR41059265
-Node: POSIX1060699
-Node: BTL1062080
-Node: POSIX/GNU1062811
-Node: Feature History1068556
-Node: Common Extensions1082282
-Node: Ranges and Locales1083654
-Ref: Ranges and Locales-Footnote-11088273
-Ref: Ranges and Locales-Footnote-21088300
-Ref: Ranges and Locales-Footnote-31088535
-Node: Contributors1088756
-Node: History summary1094296
-Node: Installation1095675
-Node: Gawk Distribution1096621
-Node: Getting1097105
-Node: Extracting1097928
-Node: Distribution contents1099565
-Node: Unix Installation1105667
-Node: Quick Installation1106350
-Node: Shell Startup Files1108761
-Node: Additional Configuration Options1109840
-Node: Configuration Philosophy1111644
-Node: Non-Unix Installation1114013
-Node: PC Installation1114471
-Node: PC Binary Installation1115791
-Node: PC Compiling1117639
-Ref: PC Compiling-Footnote-11120660
-Node: PC Testing1120769
-Node: PC Using1121945
-Node: Cygwin1126060
-Node: MSYS1126830
-Node: VMS Installation1127331
-Node: VMS Compilation1128123
-Ref: VMS Compilation-Footnote-11129352
-Node: VMS Dynamic Extensions1129410
-Node: VMS Installation Details1131094
-Node: VMS Running1133345
-Node: VMS GNV1136185
-Node: VMS Old Gawk1136920
-Node: Bugs1137390
-Node: Other Versions1141279
-Node: Installation summary1147713
-Node: Notes1148772
-Node: Compatibility Mode1149637
-Node: Additions1150419
-Node: Accessing The Source1151344
-Node: Adding Code1152779
-Node: New Ports1158936
-Node: Derived Files1163418
-Ref: Derived Files-Footnote-11168893
-Ref: Derived Files-Footnote-21168927
-Ref: Derived Files-Footnote-31169523
-Node: Future Extensions1169637
-Node: Implementation Limitations1170243
-Node: Extension Design1171491
-Node: Old Extension Problems1172645
-Ref: Old Extension Problems-Footnote-11174162
-Node: Extension New Mechanism Goals1174219
-Ref: Extension New Mechanism Goals-Footnote-11177579
-Node: Extension Other Design Decisions1177768
-Node: Extension Future Growth1179876
-Node: Old Extension Mechanism1180712
-Node: Notes summary1182474
-Node: Basic Concepts1183660
-Node: Basic High Level1184341
-Ref: figure-general-flow1184613
-Ref: figure-process-flow1185212
-Ref: Basic High Level-Footnote-11188441
-Node: Basic Data Typing1188626
-Node: Glossary1191954
-Node: Copying1223883
-Node: GNU Free Documentation License1261439
-Node: Index1286575
+Node: Foreword342291
+Node: Foreword446735
+Node: Preface48266
+Ref: Preface-Footnote-151137
+Ref: Preface-Footnote-251244
+Ref: Preface-Footnote-351477
+Node: History51619
+Node: Names53970
+Ref: Names-Footnote-155064
+Node: This Manual55210
+Ref: This Manual-Footnote-161710
+Node: Conventions61810
+Node: Manual History64147
+Ref: Manual History-Footnote-167140
+Ref: Manual History-Footnote-267181
+Node: How To Contribute67255
+Node: Acknowledgments68384
+Node: Getting Started73250
+Node: Running gawk75689
+Node: One-shot76879
+Node: Read Terminal78143
+Node: Long80174
+Node: Executable Scripts81687
+Ref: Executable Scripts-Footnote-184476
+Node: Comments84579
+Node: Quoting87061
+Node: DOS Quoting92579
+Node: Sample Data Files93254
+Node: Very Simple95849
+Node: Two Rules100748
+Node: More Complex102634
+Node: Statements/Lines105496
+Ref: Statements/Lines-Footnote-1109951
+Node: Other Features110216
+Node: When111152
+Ref: When-Footnote-1112906
+Node: Intro Summary112971
+Node: Invoking Gawk113855
+Node: Command Line115369
+Node: Options116167
+Ref: Options-Footnote-1131962
+Ref: Options-Footnote-2132191
+Node: Other Arguments132216
+Node: Naming Standard Input135164
+Node: Environment Variables136257
+Node: AWKPATH Variable136815
+Ref: AWKPATH Variable-Footnote-1140222
+Ref: AWKPATH Variable-Footnote-2140267
+Node: AWKLIBPATH Variable140527
+Node: Other Environment Variables141783
+Node: Exit Status145414
+Node: Include Files146090
+Node: Loading Shared Libraries149679
+Node: Obsolete151106
+Node: Undocumented151798
+Node: Invoking Summary152065
+Node: Regexp153728
+Node: Regexp Usage155182
+Node: Escape Sequences157219
+Node: Regexp Operators163448
+Ref: Regexp Operators-Footnote-1170858
+Ref: Regexp Operators-Footnote-2171005
+Node: Bracket Expressions171103
+Ref: table-char-classes173118
+Node: Leftmost Longest176060
+Node: Computed Regexps177362
+Node: GNU Regexp Operators180791
+Node: Case-sensitivity184463
+Ref: Case-sensitivity-Footnote-1187348
+Ref: Case-sensitivity-Footnote-2187583
+Node: Regexp Summary187691
+Node: Reading Files189158
+Node: Records191251
+Node: awk split records191984
+Node: gawk split records196913
+Ref: gawk split records-Footnote-1201452
+Node: Fields201489
+Ref: Fields-Footnote-1204267
+Node: Nonconstant Fields204353
+Ref: Nonconstant Fields-Footnote-1206591
+Node: Changing Fields206794
+Node: Field Separators212725
+Node: Default Field Splitting215429
+Node: Regexp Field Splitting216546
+Node: Single Character Fields219896
+Node: Command Line Field Separator220955
+Node: Full Line Fields224172
+Ref: Full Line Fields-Footnote-1225693
+Ref: Full Line Fields-Footnote-2225739
+Node: Field Splitting Summary225840
+Node: Constant Size227914
+Node: Splitting By Content232493
+Ref: Splitting By Content-Footnote-1236458
+Node: Multiple Line236621
+Ref: Multiple Line-Footnote-1242502
+Node: Getline242681
+Node: Plain Getline244888
+Node: Getline/Variable247528
+Node: Getline/File248677
+Node: Getline/Variable/File250062
+Ref: Getline/Variable/File-Footnote-1251665
+Node: Getline/Pipe251752
+Node: Getline/Variable/Pipe254430
+Node: Getline/Coprocess255561
+Node: Getline/Variable/Coprocess256825
+Node: Getline Notes257564
+Node: Getline Summary260358
+Ref: table-getline-variants260770
+Node: Read Timeout261599
+Ref: Read Timeout-Footnote-1265436
+Node: Command-line directories265494
+Node: Input Summary266399
+Node: Input Exercises269784
+Node: Printing270512
+Node: Print272347
+Node: Print Examples273804
+Node: Output Separators276583
+Node: OFMT278601
+Node: Printf279956
+Node: Basic Printf280741
+Node: Control Letters282313
+Node: Format Modifiers286298
+Node: Printf Examples292304
+Node: Redirection294790
+Node: Special FD301628
+Ref: Special FD-Footnote-1304794
+Node: Special Files304868
+Node: Other Inherited Files305485
+Node: Special Network306485
+Node: Special Caveats307347
+Node: Close Files And Pipes308296
+Ref: Close Files And Pipes-Footnote-1315481
+Ref: Close Files And Pipes-Footnote-2315629
+Node: Nonfatal315779
+Node: Output Summary318104
+Node: Output Exercises319325
+Node: Expressions320005
+Node: Values321194
+Node: Constants321871
+Node: Scalar Constants322562
+Ref: Scalar Constants-Footnote-1323424
+Node: Nondecimal-numbers323674
+Node: Regexp Constants326684
+Node: Using Constant Regexps327210
+Node: Variables330373
+Node: Using Variables331030
+Node: Assignment Options332941
+Node: Conversion334816
+Node: Strings And Numbers335340
+Ref: Strings And Numbers-Footnote-1338405
+Node: Locale influences conversions338514
+Ref: table-locale-affects341260
+Node: All Operators341852
+Node: Arithmetic Ops342481
+Node: Concatenation344986
+Ref: Concatenation-Footnote-1347805
+Node: Assignment Ops347912
+Ref: table-assign-ops352891
+Node: Increment Ops354201
+Node: Truth Values and Conditions357632
+Node: Truth Values358715
+Node: Typing and Comparison359764
+Node: Variable Typing360580
+Node: Comparison Operators364247
+Ref: table-relational-ops364657
+Node: POSIX String Comparison368152
+Ref: POSIX String Comparison-Footnote-1369224
+Node: Boolean Ops369363
+Ref: Boolean Ops-Footnote-1373841
+Node: Conditional Exp373932
+Node: Function Calls375670
+Node: Precedence379550
+Node: Locales383210
+Node: Expressions Summary384842
+Node: Patterns and Actions387413
+Node: Pattern Overview388533
+Node: Regexp Patterns390212
+Node: Expression Patterns390755
+Node: Ranges394535
+Node: BEGIN/END397642
+Node: Using BEGIN/END398403
+Ref: Using BEGIN/END-Footnote-1401139
+Node: I/O And BEGIN/END401245
+Node: BEGINFILE/ENDFILE403560
+Node: Empty406457
+Node: Using Shell Variables406774
+Node: Action Overview409047
+Node: Statements411373
+Node: If Statement413221
+Node: While Statement414716
+Node: Do Statement416744
+Node: For Statement417892
+Node: Switch Statement421050
+Node: Break Statement423432
+Node: Continue Statement425525
+Node: Next Statement427352
+Node: Nextfile Statement429733
+Node: Exit Statement432361
+Node: Built-in Variables434772
+Node: User-modified435905
+Ref: User-modified-Footnote-1443539
+Node: Auto-set443601
+Ref: Auto-set-Footnote-1457310
+Ref: Auto-set-Footnote-2457515
+Node: ARGC and ARGV457571
+Node: Pattern Action Summary461789
+Node: Arrays464222
+Node: Array Basics465551
+Node: Array Intro466395
+Ref: figure-array-elements468332
+Ref: Array Intro-Footnote-1470955
+Node: Reference to Elements471083
+Node: Assigning Elements473545
+Node: Array Example474036
+Node: Scanning an Array475795
+Node: Controlling Scanning478818
+Ref: Controlling Scanning-Footnote-1484212
+Node: Numeric Array Subscripts484528
+Node: Uninitialized Subscripts486713
+Node: Delete488330
+Ref: Delete-Footnote-1491079
+Node: Multidimensional491136
+Node: Multiscanning494233
+Node: Arrays of Arrays495822
+Node: Arrays Summary500576
+Node: Functions502667
+Node: Built-in503706
+Node: Calling Built-in504784
+Node: Numeric Functions506779
+Ref: Numeric Functions-Footnote-1511597
+Ref: Numeric Functions-Footnote-2511954
+Ref: Numeric Functions-Footnote-3512002
+Node: String Functions512274
+Ref: String Functions-Footnote-1535775
+Ref: String Functions-Footnote-2535904
+Ref: String Functions-Footnote-3536152
+Node: Gory Details536239
+Ref: table-sub-escapes538020
+Ref: table-sub-proposed539535
+Ref: table-posix-sub540897
+Ref: table-gensub-escapes542434
+Ref: Gory Details-Footnote-1543267
+Node: I/O Functions543418
+Ref: I/O Functions-Footnote-1550654
+Node: Time Functions550801
+Ref: Time Functions-Footnote-1561310
+Ref: Time Functions-Footnote-2561378
+Ref: Time Functions-Footnote-3561536
+Ref: Time Functions-Footnote-4561647
+Ref: Time Functions-Footnote-5561759
+Ref: Time Functions-Footnote-6561986
+Node: Bitwise Functions562252
+Ref: table-bitwise-ops562814
+Ref: Bitwise Functions-Footnote-1567142
+Node: Type Functions567314
+Node: I18N Functions568466
+Node: User-defined570113
+Node: Definition Syntax570918
+Ref: Definition Syntax-Footnote-1576577
+Node: Function Example576648
+Ref: Function Example-Footnote-1579569
+Node: Function Caveats579591
+Node: Calling A Function580109
+Node: Variable Scope581067
+Node: Pass By Value/Reference584060
+Node: Return Statement587557
+Node: Dynamic Typing590536
+Node: Indirect Calls591465
+Ref: Indirect Calls-Footnote-1601330
+Node: Functions Summary601458
+Node: Library Functions604160
+Ref: Library Functions-Footnote-1607768
+Ref: Library Functions-Footnote-2607911
+Node: Library Names608082
+Ref: Library Names-Footnote-1611540
+Ref: Library Names-Footnote-2611763
+Node: General Functions611849
+Node: Strtonum Function612952
+Node: Assert Function615974
+Node: Round Function619298
+Node: Cliff Random Function620839
+Node: Ordinal Functions621855
+Ref: Ordinal Functions-Footnote-1624918
+Ref: Ordinal Functions-Footnote-2625170
+Node: Join Function625381
+Ref: Join Function-Footnote-1627151
+Node: Getlocaltime Function627351
+Node: Readfile Function631095
+Node: Shell Quoting633067
+Node: Data File Management634468
+Node: Filetrans Function635100
+Node: Rewind Function639196
+Node: File Checking640582
+Ref: File Checking-Footnote-1641915
+Node: Empty Files642116
+Node: Ignoring Assigns644095
+Node: Getopt Function645645
+Ref: Getopt Function-Footnote-1657109
+Node: Passwd Functions657309
+Ref: Passwd Functions-Footnote-1666149
+Node: Group Functions666237
+Ref: Group Functions-Footnote-1674134
+Node: Walking Arrays674339
+Node: Library Functions Summary677345
+Node: Library Exercises678747
+Node: Sample Programs680027
+Node: Running Examples680797
+Node: Clones681525
+Node: Cut Program682749
+Node: Egrep Program692469
+Ref: Egrep Program-Footnote-1699972
+Node: Id Program700082
+Node: Split Program703758
+Ref: Split Program-Footnote-1707212
+Node: Tee Program707340
+Node: Uniq Program710129
+Node: Wc Program717548
+Ref: Wc Program-Footnote-1721798
+Node: Miscellaneous Programs721892
+Node: Dupword Program723105
+Node: Alarm Program725136
+Node: Translate Program729941
+Ref: Translate Program-Footnote-1734504
+Node: Labels Program734774
+Ref: Labels Program-Footnote-1738125
+Node: Word Sorting738209
+Node: History Sorting742279
+Node: Extract Program744114
+Node: Simple Sed751638
+Node: Igawk Program754708
+Ref: Igawk Program-Footnote-1769034
+Ref: Igawk Program-Footnote-2769235
+Ref: Igawk Program-Footnote-3769357
+Node: Anagram Program769472
+Node: Signature Program772533
+Node: Programs Summary773780
+Node: Programs Exercises775001
+Ref: Programs Exercises-Footnote-1779132
+Node: Advanced Features779223
+Node: Nondecimal Data781205
+Node: Array Sorting782795
+Node: Controlling Array Traversal783495
+Ref: Controlling Array Traversal-Footnote-1791861
+Node: Array Sorting Functions791979
+Ref: Array Sorting Functions-Footnote-1795865
+Node: Two-way I/O796061
+Ref: Two-way I/O-Footnote-1801006
+Ref: Two-way I/O-Footnote-2801192
+Node: TCP/IP Networking801274
+Node: Profiling804146
+Node: Advanced Features Summary812417
+Node: Internationalization814350
+Node: I18N and L10N815830
+Node: Explaining gettext816516
+Ref: Explaining gettext-Footnote-1821541
+Ref: Explaining gettext-Footnote-2821725
+Node: Programmer i18n821890
+Ref: Programmer i18n-Footnote-1826766
+Node: Translator i18n826815
+Node: String Extraction827609
+Ref: String Extraction-Footnote-1828740
+Node: Printf Ordering828826
+Ref: Printf Ordering-Footnote-1831612
+Node: I18N Portability831676
+Ref: I18N Portability-Footnote-1834132
+Node: I18N Example834195
+Ref: I18N Example-Footnote-1836998
+Node: Gawk I18N837070
+Node: I18N Summary837714
+Node: Debugger839054
+Node: Debugging840076
+Node: Debugging Concepts840517
+Node: Debugging Terms842327
+Node: Awk Debugging844899
+Node: Sample Debugging Session845805
+Node: Debugger Invocation846339
+Node: Finding The Bug847724
+Node: List of Debugger Commands854203
+Node: Breakpoint Control855535
+Node: Debugger Execution Control859212
+Node: Viewing And Changing Data862571
+Node: Execution Stack865947
+Node: Debugger Info867582
+Node: Miscellaneous Debugger Commands871627
+Node: Readline Support876628
+Node: Limitations877522
+Node: Debugging Summary879637
+Node: Arbitrary Precision Arithmetic880811
+Node: Computer Arithmetic882227
+Ref: table-numeric-ranges885804
+Ref: Computer Arithmetic-Footnote-1886328
+Node: Math Definitions886385
+Ref: table-ieee-formats889680
+Ref: Math Definitions-Footnote-1890284
+Node: MPFR features890389
+Node: FP Math Caution892060
+Ref: FP Math Caution-Footnote-1893110
+Node: Inexactness of computations893479
+Node: Inexact representation894438
+Node: Comparing FP Values895796
+Node: Errors accumulate896878
+Node: Getting Accuracy898310
+Node: Try To Round901014
+Node: Setting precision901913
+Ref: table-predefined-precision-strings902597
+Node: Setting the rounding mode904426
+Ref: table-gawk-rounding-modes904790
+Ref: Setting the rounding mode-Footnote-1908242
+Node: Arbitrary Precision Integers908421
+Ref: Arbitrary Precision Integers-Footnote-1913319
+Node: POSIX Floating Point Problems913468
+Ref: POSIX Floating Point Problems-Footnote-1917347
+Node: Floating point summary917385
+Node: Dynamic Extensions919572
+Node: Extension Intro921124
+Node: Plugin License922389
+Node: Extension Mechanism Outline923186
+Ref: figure-load-extension923614
+Ref: figure-register-new-function925094
+Ref: figure-call-new-function926098
+Node: Extension API Description928085
+Node: Extension API Functions Introduction929535
+Node: General Data Types934356
+Ref: General Data Types-Footnote-1940256
+Node: Memory Allocation Functions940555
+Ref: Memory Allocation Functions-Footnote-1943394
+Node: Constructor Functions943493
+Node: Registration Functions945232
+Node: Extension Functions945917
+Node: Exit Callback Functions948214
+Node: Extension Version String949462
+Node: Input Parsers950125
+Node: Output Wrappers960000
+Node: Two-way processors964513
+Node: Printing Messages966776
+Ref: Printing Messages-Footnote-1967852
+Node: Updating `ERRNO'968004
+Node: Requesting Values968744
+Ref: table-value-types-returned969471
+Node: Accessing Parameters970428
+Node: Symbol Table Access971662
+Node: Symbol table by name972176
+Node: Symbol table by cookie974196
+Ref: Symbol table by cookie-Footnote-1978341
+Node: Cached values978404
+Ref: Cached values-Footnote-1981900
+Node: Array Manipulation981991
+Ref: Array Manipulation-Footnote-1983089
+Node: Array Data Types983126
+Ref: Array Data Types-Footnote-1985781
+Node: Array Functions985873
+Node: Flattening Arrays989732
+Node: Creating Arrays996634
+Node: Extension API Variables1001405
+Node: Extension Versioning1002041
+Node: Extension API Informational Variables1003932
+Node: Extension API Boilerplate1004997
+Node: Finding Extensions1008806
+Node: Extension Example1009366
+Node: Internal File Description1010138
+Node: Internal File Ops1014205
+Ref: Internal File Ops-Footnote-11025956
+Node: Using Internal File Ops1026096
+Ref: Using Internal File Ops-Footnote-11028479
+Node: Extension Samples1028752
+Node: Extension Sample File Functions1030280
+Node: Extension Sample Fnmatch1037961
+Node: Extension Sample Fork1039449
+Node: Extension Sample Inplace1040664
+Node: Extension Sample Ord1042340
+Node: Extension Sample Readdir1043176
+Ref: table-readdir-file-types1044053
+Node: Extension Sample Revout1044864
+Node: Extension Sample Rev2way1045453
+Node: Extension Sample Read write array1046193
+Node: Extension Sample Readfile1048133
+Node: Extension Sample Time1049228
+Node: Extension Sample API Tests1050576
+Node: gawkextlib1051067
+Node: Extension summary1053745
+Node: Extension Exercises1057434
+Node: Language History1058156
+Node: V7/SVR3.11059812
+Node: SVR41061965
+Node: POSIX1063399
+Node: BTL1064780
+Node: POSIX/GNU1065511
+Node: Feature History1071347
+Node: Common Extensions1085141
+Node: Ranges and Locales1086513
+Ref: Ranges and Locales-Footnote-11091132
+Ref: Ranges and Locales-Footnote-21091159
+Ref: Ranges and Locales-Footnote-31091394
+Node: Contributors1091615
+Node: History summary1097155
+Node: Installation1098534
+Node: Gawk Distribution1099480
+Node: Getting1099964
+Node: Extracting1100787
+Node: Distribution contents1102424
+Node: Unix Installation1108526
+Node: Quick Installation1109209
+Node: Shell Startup Files1111620
+Node: Additional Configuration Options1112699
+Node: Configuration Philosophy1114503
+Node: Non-Unix Installation1116872
+Node: PC Installation1117330
+Node: PC Binary Installation1118650
+Node: PC Compiling1120498
+Ref: PC Compiling-Footnote-11123519
+Node: PC Testing1123628
+Node: PC Using1124804
+Node: Cygwin1128919
+Node: MSYS1129689
+Node: VMS Installation1130190
+Node: VMS Compilation1130982
+Ref: VMS Compilation-Footnote-11132211
+Node: VMS Dynamic Extensions1132269
+Node: VMS Installation Details1133953
+Node: VMS Running1136204
+Node: VMS GNV1139044
+Node: VMS Old Gawk1139779
+Node: Bugs1140249
+Node: Other Versions1144138
+Node: Installation summary1150572
+Node: Notes1151631
+Node: Compatibility Mode1152496
+Node: Additions1153278
+Node: Accessing The Source1154203
+Node: Adding Code1155638
+Node: New Ports1161795
+Node: Derived Files1166277
+Ref: Derived Files-Footnote-11171752
+Ref: Derived Files-Footnote-21171786
+Ref: Derived Files-Footnote-31172382
+Node: Future Extensions1172496
+Node: Implementation Limitations1173102
+Node: Extension Design1174350
+Node: Old Extension Problems1175504
+Ref: Old Extension Problems-Footnote-11177021
+Node: Extension New Mechanism Goals1177078
+Ref: Extension New Mechanism Goals-Footnote-11180438
+Node: Extension Other Design Decisions1180627
+Node: Extension Future Growth1182735
+Node: Old Extension Mechanism1183571
+Node: Notes summary1185333
+Node: Basic Concepts1186519
+Node: Basic High Level1187200
+Ref: figure-general-flow1187472
+Ref: figure-process-flow1188071
+Ref: Basic High Level-Footnote-11191300
+Node: Basic Data Typing1191485
+Node: Glossary1194813
+Node: Copying1226742
+Node: GNU Free Documentation License1264298
+Node: Index1289434

End Tag Table