aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-05-23 05:43:32 +0300
committerArnold D. Robbins <arnold@skeeve.com>2017-05-23 05:43:32 +0300
commit1d9b00da83d88f353dd517bb8a763baf34d7c80f (patch)
tree90bc2a83e45f04e37ae33519098fc498279d9d77 /doc/gawk.info
parent76dd301e43e1d3bc93652704293dc71879513ce9 (diff)
parentd3d50a55367f84182d21420121b504f898cda459 (diff)
downloadegawk-1d9b00da83d88f353dd517bb8a763baf34d7c80f.tar.gz
egawk-1d9b00da83d88f353dd517bb8a763baf34d7c80f.tar.bz2
egawk-1d9b00da83d88f353dd517bb8a763baf34d7c80f.zip
Merge branch 'master' into feature/api-mpfr
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1413
1 files changed, 759 insertions, 654 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 3779fa95..b57abbd3 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -196,7 +196,13 @@ in (a) below. A copy of the license is included in the section entitled
field.
* Field Splitting Summary:: Some final points and a summary table.
* Constant Size:: Reading constant width data.
+* Fixed width data:: Processing fixed-width data.
+* Skipping intervening:: Skipping intervening fields.
+* Allowing trailing data:: Capturing optional trailing data.
+* Fields with fixed data:: Field values with fixed-width data.
* Splitting By Content:: Defining Fields By Content
+* Testing field creation:: Checking how 'gawk' is
+ splitting records.
* Multiple Line:: Reading multiline records.
* Getline:: Reading files under explicit program
control using the 'getline'
@@ -4228,6 +4234,8 @@ be named on the 'awk' command line (*note Getline::).
* Field Separators:: The field separator and how to change it.
* Constant Size:: Reading constant width data.
* Splitting By Content:: Defining Fields By Content
+* Testing field creation:: Checking how 'gawk' is splitting
+ records.
* Multiple Line:: Reading multiline records.
* Getline:: Reading files under explicit program control
using the 'getline' function.
@@ -5124,10 +5132,25 @@ This minor node discusses an advanced feature of 'gawk'. If you are a
novice 'awk' user, you might want to skip it on the first reading.
'gawk' provides a facility for dealing with fixed-width fields with
-no distinctive field separator. For example, data of this nature arises
-in the input for old Fortran programs where numbers are run together, or
-in the output of programs that did not anticipate the use of their
-output as input for other programs.
+no distinctive field separator. We discuss this feature in the
+following nodes.
+
+* Menu:
+
+* Fixed width data:: Processing fixed-width data.
+* Skipping intervening:: Skipping intervening fields.
+* Allowing trailing data:: Capturing optional trailing data.
+* Fields with fixed data:: Field values with fixed-width data.
+
+
+File: gawk.info, Node: Fixed width data, Next: Skipping intervening, Up: Constant Size
+
+4.6.1 Processing Fixed-Width Data
+---------------------------------
+
+An example of fixed-width data would be the input for old Fortran
+programs where numbers are run together, or the output of programs that
+did not anticipate the use of their output as input for other programs.
An example of the latter is a table where all the columns are lined
up by the use of a variable number of spaces and _empty fields are just
@@ -5141,12 +5164,11 @@ by assigning a string containing space-separated numbers to 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. Or, starting in version 4.2, each field width may
-optionally be preceded by a colon-separated value specifying the number
-of characters to skip before the field starts. It is a fatal error to
-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':
+subsequently ignored. It is a fatal error to 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
@@ -5169,7 +5191,7 @@ calculated idle time:
sub(/^ +/, "", idle) # strip leading spaces
if (idle == "")
idle = 0
- if (idle ~ /:/) {
+ if (idle ~ /:/) { # hh:mm
split(idle, t, ":")
idle = t[1] * 60 + t[2]
}
@@ -5193,11 +5215,31 @@ calculated idle time:
brent ttyp0 286
dave ttyq4 1296000
- Starting in version 4.2, this program could be rewritten to specify
-'FIELDWIDTHS' like so:
+ Another (possibly more practical) example of fixed-width input data
+is the input from a deck of balloting cards. In some parts of the
+United States, voters mark their choices by punching holes in computer
+cards. These cards are then processed to count the votes for any
+particular candidate or on any particular issue. Because a voter may
+choose not to vote on some issue, any column on the card may be empty.
+An 'awk' program for processing such data could use the 'FIELDWIDTHS'
+feature to simplify reading the data. (Of course, getting 'gawk' to run
+on a system with card readers is another story!)
+
+
+File: gawk.info, Node: Skipping intervening, Next: Allowing trailing data, Prev: Fixed width data, Up: Constant Size
+
+4.6.2 Skipping Intervening Fields
+---------------------------------
+
+Starting in version 4.2, each field width may optionally be preceded by
+a colon-separated value specifying the number of characters to skip
+before the field starts. Thus, the preceding program could be rewritten
+to specify 'FIELDWIDTHS' like so:
+
BEGIN { FIELDWIDTHS = "8 1:5 4:7 6 1:6 1:6 2:33" }
+
This strips away some of the white space separating the fields. With
-such a change, the program would produce the following results:
+such a change, the program produces the following results:
hzang ttyV3 50
eklye ttyV5 0
@@ -5207,39 +5249,68 @@ such a change, the program would produce the following results:
brent ttyp0 286
dave ttyq4 1296000
- Another (possibly more practical) example of fixed-width input data
-is the input from a deck of balloting cards. In some parts of the
-United States, voters mark their choices by punching holes in computer
-cards. These cards are then processed to count the votes for any
-particular candidate or on any particular issue. Because a voter may
-choose not to vote on some issue, any column on the card may be empty.
-An 'awk' program for processing such data could use the 'FIELDWIDTHS'
-feature to simplify reading the data. (Of course, getting 'gawk' to run
-on a system with card readers is another story!)
+
+File: gawk.info, Node: Allowing trailing data, Next: Fields with fixed data, Prev: Skipping intervening, Up: Constant Size
- Assigning a value to 'FS' causes 'gawk' to use 'FS' for field
-splitting again. Use 'FS = FS' to make this happen, without having to
-know the current value of 'FS'. In order to tell which kind of field
-splitting is in effect, use 'PROCINFO["FS"]' (*note Auto-set::). The
-value is '"FS"' if regular field splitting is being used, or
-'"FIELDWIDTHS"' if fixed-width field splitting is being used:
+4.6.3 Capturing Optional Trailing Data
+--------------------------------------
- if (PROCINFO["FS"] == "FS")
- REGULAR FIELD SPLITTING ...
- else if (PROCINFO["FS"] == "FIELDWIDTHS")
- FIXED-WIDTH FIELD SPLITTING ...
- else if (PROCINFO["FS"] == "FPAT")
- CONTENT-BASED FIELD SPLITTING ... (see next minor node)
- else
- API INPUT PARSER FIELD SPLITTING ... (advanced feature)
+There are times when fixed-width data may be followed by additional data
+that has no fixed length. Such data may or may not be present, but if
+it is, it should be possible to get at it from an 'awk' program.
- 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
-of such a function).
+ Starting with version 4.2, in order to provide a way to say "anything
+else in the record after the defined fields," 'gawk' allows you to add a
+final '*' character to the value of 'FIELDWIDTHS'. There can only be
+one such character, and it must be the final non-whitespace character in
+'FIELDWIDTHS'. For example:
+
+ $ cat fw.awk Show the program
+ -| BEGIN { FIELDWIDTHS = "2 2 *" }
+ -| { print NF, $1, $2, $3 }
+ $ cat fw.in Show sample input
+ -| 1234abcdefghi
+ $ gawk -f fw.awk fw.in Run the program
+ -| 3 12 34 abcdefghi

-File: gawk.info, Node: Splitting By Content, Next: Multiple Line, Prev: Constant Size, Up: Reading Files
+File: gawk.info, Node: Fields with fixed data, Prev: Allowing trailing data, Up: Constant Size
+
+4.6.4 Field Values With Fixed-Width Data
+----------------------------------------
+
+So far, so good. But what happens if there isn't as much data as there
+should be based on the contents of 'FIELDWIDTHS'? Or, what happens if
+there is more data than expected?
+
+ For many years, what happens in these cases was not well defined.
+Starting with version 4.2, the rules are as follows:
+
+Enough data for some fields
+ For example, if 'FIELDWIDTHS' is set to '"2 3 4"' and the input
+ record is 'aabbb'. In this case, 'NF' is set to two.
+
+Not enough data for a field
+ For example, if 'FIELDWIDTHS' is set to '"2 3 4"' and the input
+ record is 'aab'. In this case, 'NF' is set to two and '$2' has the
+ value '"b"'. The idea is that even though there aren't as many
+ characters as were expected, there are some, so the data should be
+ made available to the program.
+
+Too much data
+ For example, if 'FIELDWIDTHS' is set to '"2 3 4"' and the input
+ record is 'aabbbccccddd'. In this case, 'NF' is set to three and
+ the extra characters ('ddd') are ignored. If you want 'gawk' to
+ capture the extra characters, supply a final '*' in the value of
+ 'FIELDWIDTHS'.
+
+Too much data, but with '*' supplied
+ For example, if 'FIELDWIDTHS' is set to '"2 3 4 *"' and the input
+ record is 'aabbbccccddd'. In this case, 'NF' is set to four, and
+ '$4' has the value '"ddd"'.
+
+
+File: gawk.info, Node: Splitting By Content, Next: Testing field creation, Prev: Constant Size, Up: Reading Files
4.7 Defining Fields by Content
==============================
@@ -5315,9 +5386,7 @@ would be to remove the quotes when they occur, with something like this:
affects field splitting with 'FPAT'.
Assigning a value to 'FPAT' overrides field splitting with 'FS' and
-with 'FIELDWIDTHS'. Similar to 'FIELDWIDTHS', the value of
-'PROCINFO["FS"]' will be '"FPAT"' if content-based field splitting is
-being used.
+with 'FIELDWIDTHS'.
NOTE: Some programs export CSV data that contains embedded newlines
between the double quotes. 'gawk' provides no way to deal with
@@ -5335,23 +5404,53 @@ contain at least one character. A straightforward modification
Finally, the 'patsplit()' function makes the same functionality
available for splitting regular strings (*note String Functions::).
- To recap, 'gawk' provides three independent methods to split input
+ ---------- Footnotes ----------
+
+ (1) The CSV format lacked a formal standard definition for many
+years. RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt) standardizes the
+most common practices.
+
+
+File: gawk.info, Node: Testing field creation, Next: Multiple Line, Prev: Splitting By Content, Up: Reading Files
+
+4.8 Checking How 'gawk' Is Splitting Records
+============================================
+
+As we've seen, 'gawk' provides three independent methods to split input
records into fields. The mechanism used is based on which of the three
variables--'FS', 'FIELDWIDTHS', or 'FPAT'--was last assigned to. In
addition, an API input parser may choose to override the record parsing
mechanism; please refer to *note Input Parsers:: for further information
about this feature.
- ---------- Footnotes ----------
+ To restore normal field splitting after using 'FIELDWIDTHS' and/or
+'FPAT', simply assign a value to 'FS'. You can use 'FS = FS' to do
+this, without having to know the current value of 'FS'.
- (1) The CSV format lacked a formal standard definition for many
-years. RFC 4180 (http://www.ietf.org/rfc/rfc4180.txt) standardizes the
-most common practices.
+ In order to tell which kind of field splitting is in effect, use
+'PROCINFO["FS"]' (*note Auto-set::). The value is '"FS"' if regular
+field splitting is being used, '"FIELDWIDTHS"' if fixed-width field
+splitting is being used, or '"FPAT"' if content-based field splitting is
+being used:
+
+ if (PROCINFO["FS"] == "FS")
+ REGULAR FIELD SPLITTING ...
+ else if (PROCINFO["FS"] == "FIELDWIDTHS")
+ FIXED-WIDTH FIELD SPLITTING ...
+ else if (PROCINFO["FS"] == "FPAT")
+ CONTENT-BASED FIELD SPLITTING
+ else
+ API INPUT PARSER FIELD SPLITTING ... (advanced feature)
+
+ 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
+of such a function).

-File: gawk.info, Node: Multiple Line, Next: Getline, Prev: Splitting By Content, Up: Reading Files
+File: gawk.info, Node: Multiple Line, Next: Getline, Prev: Testing field creation, Up: Reading Files
-4.8 Multiple-Line Records
+4.9 Multiple-Line Records
=========================
In some databases, a single line cannot conveniently hold all the
@@ -5491,8 +5590,8 @@ separator of a single space: 'FS = " "'.

File: gawk.info, Node: Getline, Next: Read Timeout, Prev: Multiple Line, Up: Reading Files
-4.9 Explicit Input with 'getline'
-=================================
+4.10 Explicit Input with 'getline'
+==================================
So far we have been getting our input data from 'awk''s main input
stream--either the standard input (usually your keyboard, sometimes the
@@ -5543,8 +5642,8 @@ represents a shell command.

File: gawk.info, Node: Plain Getline, Next: Getline/Variable, Up: Getline
-4.9.1 Using 'getline' with No Arguments
----------------------------------------
+4.10.1 Using 'getline' with No Arguments
+----------------------------------------
The 'getline' command can be used without arguments to read input from
the current input file. All it does in this case is read the next input
@@ -5604,8 +5703,8 @@ the value of '$0'.

File: gawk.info, Node: Getline/Variable, Next: Getline/File, Prev: Plain Getline, Up: Getline
-4.9.2 Using 'getline' into a Variable
--------------------------------------
+4.10.2 Using 'getline' into a Variable
+--------------------------------------
You can use 'getline VAR' to read the next record from 'awk''s input
into the variable VAR. No other processing is done. For example,
@@ -5645,8 +5744,8 @@ fields, so the values of the fields (including '$0') and the value of

File: gawk.info, Node: Getline/File, Next: Getline/Variable/File, Prev: Getline/Variable, Up: Getline
-4.9.3 Using 'getline' from a File
----------------------------------
+4.10.3 Using 'getline' from a File
+----------------------------------
Use 'getline < FILE' to read the next record from FILE. Here, FILE is a
string-valued expression that specifies the file name. '< FILE' is
@@ -5678,8 +5777,8 @@ portable to all 'awk' implementations.

File: gawk.info, Node: Getline/Variable/File, Next: Getline/Pipe, Prev: Getline/File, Up: Getline
-4.9.4 Using 'getline' into a Variable from a File
--------------------------------------------------
+4.10.4 Using 'getline' into a Variable from a File
+--------------------------------------------------
Use 'getline VAR < FILE' to read input from the file FILE, and put it in
the variable VAR. As earlier, FILE is a string-valued expression that
@@ -5722,8 +5821,8 @@ regular expression.

File: gawk.info, Node: Getline/Pipe, Next: Getline/Variable/Pipe, Prev: Getline/Variable/File, Up: Getline
-4.9.5 Using 'getline' from a Pipe
----------------------------------
+4.10.5 Using 'getline' from a Pipe
+----------------------------------
Omniscience has much to recommend it. Failing that, attention to
details would be useful.
@@ -5792,8 +5891,8 @@ you want your program to be portable to all 'awk' implementations.

File: gawk.info, Node: Getline/Variable/Pipe, Next: Getline/Coprocess, Prev: Getline/Pipe, Up: Getline
-4.9.6 Using 'getline' into a Variable from a Pipe
--------------------------------------------------
+4.10.6 Using 'getline' into a Variable from a Pipe
+--------------------------------------------------
When you use 'COMMAND | getline VAR', the output of COMMAND is sent
through a pipe to 'getline' and into the variable VAR. For example, the
@@ -5819,8 +5918,8 @@ to other 'awk' implementations.

File: gawk.info, Node: Getline/Coprocess, Next: Getline/Variable/Coprocess, Prev: Getline/Variable/Pipe, Up: Getline
-4.9.7 Using 'getline' from a Coprocess
---------------------------------------
+4.10.7 Using 'getline' from a Coprocess
+---------------------------------------
Reading input into 'getline' from a pipe is a one-way operation. The
command that is started with 'COMMAND | getline' only sends data _to_
@@ -5849,8 +5948,8 @@ coprocesses are discussed in more detail.

File: gawk.info, Node: Getline/Variable/Coprocess, Next: Getline Notes, Prev: Getline/Coprocess, Up: Getline
-4.9.8 Using 'getline' into a Variable from a Coprocess
-------------------------------------------------------
+4.10.8 Using 'getline' into a Variable from a Coprocess
+-------------------------------------------------------
When you use 'COMMAND |& getline VAR', the output from the coprocess
COMMAND is sent through a two-way pipe to 'getline' and into the
@@ -5867,8 +5966,8 @@ coprocesses are discussed in more detail.

File: gawk.info, Node: Getline Notes, Next: Getline Summary, Prev: Getline/Variable/Coprocess, Up: Getline
-4.9.9 Points to Remember About 'getline'
-----------------------------------------
+4.10.9 Points to Remember About 'getline'
+-----------------------------------------
Here are some miscellaneous points about 'getline' that you should bear
in mind:
@@ -5927,8 +6026,8 @@ in mind:

File: gawk.info, Node: Getline Summary, Prev: Getline Notes, Up: Getline
-4.9.10 Summary of 'getline' Variants
-------------------------------------
+4.10.10 Summary of 'getline' Variants
+-------------------------------------
*note Table 4.1: table-getline-variants. summarizes the eight variants
of 'getline', listing which predefined variables are set by each one,
@@ -5955,7 +6054,7 @@ Table 4.1: 'getline' variants and what they set

File: gawk.info, Node: Read Timeout, Next: Retrying Input, Prev: Getline, Up: Reading Files
-4.10 Reading Input with a Timeout
+4.11 Reading Input with a Timeout
=================================
This minor node describes a feature that is specific to 'gawk'.
@@ -6049,7 +6148,7 @@ can block indefinitely until some other process opens it for writing.

File: gawk.info, Node: Retrying Input, Next: Command-line directories, Prev: Read Timeout, Up: Reading Files
-4.11 Retrying Reads After Certain Input Errors
+4.12 Retrying Reads After Certain Input Errors
==============================================
This minor node describes a feature that is specific to 'gawk'.
@@ -6076,7 +6175,7 @@ configured to behave in a non-blocking fashion.

File: gawk.info, Node: Command-line directories, Next: Input Summary, Prev: Retrying Input, Up: Reading Files
-4.12 Directories on the Command Line
+4.13 Directories on the Command Line
====================================
According to the POSIX standard, files named on the 'awk' command line
@@ -6099,7 +6198,7 @@ usable data from an 'awk' program.

File: gawk.info, Node: Input Summary, Next: Input Exercises, Prev: Command-line directories, Up: Reading Files
-4.13 Summary
+4.14 Summary
============
* Input is split into records based on the value of 'RS'. The
@@ -6171,7 +6270,7 @@ File: gawk.info, Node: Input Summary, Next: Input Exercises, Prev: Command-li

File: gawk.info, Node: Input Exercises, Prev: Input Summary, Up: Reading Files
-4.14 Exercises
+4.15 Exercises
==============
1. Using the 'FIELDWIDTHS' variable (*note Constant Size::), write a
@@ -33758,7 +33857,7 @@ Index
* fields, separating <1>: Field Separators. (line 15)
* fields, single-character: Single Character Fields.
(line 6)
-* FIELDWIDTHS variable: Constant Size. (line 22)
+* FIELDWIDTHS variable: Fixed width data. (line 17)
* FIELDWIDTHS variable <1>: User-modified. (line 37)
* file descriptors: Special FD. (line 6)
* file inclusion, @include directive: Include Files. (line 8)
@@ -33967,7 +34066,7 @@ Index
* gawk, features, adding: Adding Code. (line 6)
* gawk, features, advanced: Advanced Features. (line 6)
* gawk, field separators and: User-modified. (line 74)
-* gawk, FIELDWIDTHS variable in: Constant Size. (line 22)
+* gawk, FIELDWIDTHS variable in: Fixed width data. (line 17)
* gawk, FIELDWIDTHS variable in <1>: User-modified. (line 37)
* gawk, file names in: Special Files. (line 6)
* gawk, format-control characters: Control Letters. (line 18)
@@ -34018,7 +34117,8 @@ Index
* gawk, RT variable in <2>: Auto-set. (line 296)
* gawk, See Also awk: Preface. (line 34)
* gawk, source code, obtaining: Getting. (line 6)
-* gawk, splitting fields and: Constant Size. (line 103)
+* gawk, splitting fields and: Testing field creation.
+ (line 6)
* gawk, string-translation functions: I18N Functions. (line 6)
* gawk, SYMTAB array in: Auto-set. (line 300)
* gawk, TEXTDOMAIN variable in: User-modified. (line 155)
@@ -35323,8 +35423,8 @@ Index
* troubleshooting, backslash before nonspecial character: Escape Sequences.
(line 108)
* troubleshooting, division: Arithmetic Ops. (line 44)
-* troubleshooting, fatal errors, field widths, specifying: Constant Size.
- (line 22)
+* troubleshooting, fatal errors, field widths, specifying: Fixed width data.
+ (line 17)
* troubleshooting, fatal errors, printf format strings: Format Modifiers.
(line 157)
* troubleshooting, fflush() function: I/O Functions. (line 63)
@@ -35448,7 +35548,7 @@ Index
* Vinschen, Corinna: Acknowledgments. (line 60)
* w debugger command (alias for watch): Viewing And Changing Data.
(line 66)
-* w utility: Constant Size. (line 22)
+* w utility: Fixed width data. (line 17)
* wait() extension function: Extension Sample Fork.
(line 22)
* waitpid() extension function: Extension Sample Fork.
@@ -35503,574 +35603,579 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword342794
-Node: Foreword447236
-Node: Preface48768
-Ref: Preface-Footnote-151627
-Ref: Preface-Footnote-251734
-Ref: Preface-Footnote-351968
-Node: History52110
-Node: Names54462
-Ref: Names-Footnote-155556
-Node: This Manual55703
-Ref: This Manual-Footnote-162188
-Node: Conventions62288
-Node: Manual History64642
-Ref: Manual History-Footnote-167637
-Ref: Manual History-Footnote-267678
-Node: How To Contribute67752
-Node: Acknowledgments68403
-Node: Getting Started73289
-Node: Running gawk75728
-Node: One-shot76918
-Node: Read Terminal78181
-Node: Long80174
-Node: Executable Scripts81687
-Ref: Executable Scripts-Footnote-184482
-Node: Comments84585
-Node: Quoting87069
-Node: DOS Quoting92586
-Node: Sample Data Files94641
-Node: Very Simple97236
-Node: Two Rules102138
-Node: More Complex104023
-Node: Statements/Lines106889
-Ref: Statements/Lines-Footnote-1111348
-Node: Other Features111613
-Node: When112549
-Ref: When-Footnote-1114303
-Node: Intro Summary114368
-Node: Invoking Gawk115252
-Node: Command Line116766
-Node: Options117564
-Ref: Options-Footnote-1134183
-Ref: Options-Footnote-2134413
-Node: Other Arguments134438
-Node: Naming Standard Input137385
-Node: Environment Variables138478
-Node: AWKPATH Variable139036
-Ref: AWKPATH Variable-Footnote-1142447
-Ref: AWKPATH Variable-Footnote-2142481
-Node: AWKLIBPATH Variable142742
-Node: Other Environment Variables143999
-Node: Exit Status147820
-Node: Include Files148497
-Node: Loading Shared Libraries152092
-Node: Obsolete153520
-Node: Undocumented154212
-Node: Invoking Summary154509
-Node: Regexp156169
-Node: Regexp Usage157623
-Node: Escape Sequences159660
-Node: Regexp Operators165892
-Ref: Regexp Operators-Footnote-1173308
-Ref: Regexp Operators-Footnote-2173455
-Node: Bracket Expressions173553
-Ref: table-char-classes176029
-Node: Leftmost Longest179166
-Node: Computed Regexps180469
-Node: GNU Regexp Operators183896
-Node: Case-sensitivity187575
-Ref: Case-sensitivity-Footnote-1190462
-Ref: Case-sensitivity-Footnote-2190697
-Node: Regexp Summary190805
-Node: Reading Files192271
-Node: Records194434
-Node: awk split records195167
-Node: gawk split records200098
-Ref: gawk split records-Footnote-1204638
-Node: Fields204675
-Node: Nonconstant Fields207416
-Ref: Nonconstant Fields-Footnote-1209652
-Node: Changing Fields209856
-Node: Field Separators215784
-Node: Default Field Splitting218482
-Node: Regexp Field Splitting219600
-Node: Single Character Fields222953
-Node: Command Line Field Separator224013
-Node: Full Line Fields227231
-Ref: Full Line Fields-Footnote-1228753
-Ref: Full Line Fields-Footnote-2228799
-Node: Field Splitting Summary228900
-Node: Constant Size230974
-Node: Splitting By Content236283
-Ref: Splitting By Content-Footnote-1240423
-Node: Multiple Line240586
-Ref: Multiple Line-Footnote-1246468
-Node: Getline246647
-Node: Plain Getline249114
-Node: Getline/Variable251753
-Node: Getline/File252902
-Node: Getline/Variable/File254288
-Ref: Getline/Variable/File-Footnote-1255891
-Node: Getline/Pipe255979
-Node: Getline/Variable/Pipe258684
-Node: Getline/Coprocess259817
-Node: Getline/Variable/Coprocess261082
-Node: Getline Notes261822
-Node: Getline Summary264617
-Ref: table-getline-variants265039
-Node: Read Timeout265787
-Ref: Read Timeout-Footnote-1269693
-Node: Retrying Input269751
-Node: Command-line directories270950
-Node: Input Summary271856
-Node: Input Exercises275028
-Node: Printing275756
-Node: Print277590
-Node: Print Examples279047
-Node: Output Separators281827
-Node: OFMT283844
-Node: Printf285200
-Node: Basic Printf285985
-Node: Control Letters287559
-Node: Format Modifiers291547
-Node: Printf Examples297562
-Node: Redirection300048
-Node: Special FD306889
-Ref: Special FD-Footnote-1310057
-Node: Special Files310131
-Node: Other Inherited Files310748
-Node: Special Network311749
-Node: Special Caveats312609
-Node: Close Files And Pipes313558
-Ref: table-close-pipe-return-values320465
-Ref: Close Files And Pipes-Footnote-1321248
-Ref: Close Files And Pipes-Footnote-2321396
-Node: Nonfatal321548
-Node: Output Summary323873
-Node: Output Exercises325095
-Node: Expressions325774
-Node: Values326962
-Node: Constants327640
-Node: Scalar Constants328331
-Ref: Scalar Constants-Footnote-1329195
-Node: Nondecimal-numbers329445
-Node: Regexp Constants332446
-Node: Using Constant Regexps332972
-Node: Standard Regexp Constants333594
-Node: Strong Regexp Constants336782
-Node: Variables339740
-Node: Using Variables340397
-Node: Assignment Options342307
-Node: Conversion344180
-Node: Strings And Numbers344704
-Ref: Strings And Numbers-Footnote-1347767
-Node: Locale influences conversions347876
-Ref: table-locale-affects350634
-Node: All Operators351252
-Node: Arithmetic Ops351881
-Node: Concatenation354387
-Ref: Concatenation-Footnote-1357234
-Node: Assignment Ops357341
-Ref: table-assign-ops362332
-Node: Increment Ops363645
-Node: Truth Values and Conditions367105
-Node: Truth Values368179
-Node: Typing and Comparison369227
-Node: Variable Typing370047
-Ref: Variable Typing-Footnote-1376510
-Ref: Variable Typing-Footnote-2376582
-Node: Comparison Operators376659
-Ref: table-relational-ops377078
-Node: POSIX String Comparison380573
-Ref: POSIX String Comparison-Footnote-1382268
-Ref: POSIX String Comparison-Footnote-2382407
-Node: Boolean Ops382491
-Ref: Boolean Ops-Footnote-1386973
-Node: Conditional Exp387065
-Node: Function Calls388801
-Node: Precedence392678
-Node: Locales396337
-Node: Expressions Summary397969
-Node: Patterns and Actions400542
-Node: Pattern Overview401662
-Node: Regexp Patterns403339
-Node: Expression Patterns403881
-Node: Ranges407662
-Node: BEGIN/END410770
-Node: Using BEGIN/END411531
-Ref: Using BEGIN/END-Footnote-1414267
-Node: I/O And BEGIN/END414373
-Node: BEGINFILE/ENDFILE416687
-Node: Empty419594
-Node: Using Shell Variables419911
-Node: Action Overview422185
-Node: Statements424510
-Node: If Statement426358
-Node: While Statement427853
-Node: Do Statement429881
-Node: For Statement431029
-Node: Switch Statement434187
-Node: Break Statement436573
-Node: Continue Statement438665
-Node: Next Statement440492
-Node: Nextfile Statement442875
-Node: Exit Statement445527
-Node: Built-in Variables447930
-Node: User-modified449063
-Node: Auto-set456830
-Ref: Auto-set-Footnote-1471558
-Ref: Auto-set-Footnote-2471764
-Node: ARGC and ARGV471820
-Node: Pattern Action Summary476033
-Node: Arrays478463
-Node: Array Basics479792
-Node: Array Intro480636
-Ref: figure-array-elements482611
-Ref: Array Intro-Footnote-1485315
-Node: Reference to Elements485443
-Node: Assigning Elements487907
-Node: Array Example488398
-Node: Scanning an Array490157
-Node: Controlling Scanning493179
-Ref: Controlling Scanning-Footnote-1498578
-Node: Numeric Array Subscripts498894
-Node: Uninitialized Subscripts501078
-Node: Delete502697
-Ref: Delete-Footnote-1505449
-Node: Multidimensional505506
-Node: Multiscanning508601
-Node: Arrays of Arrays510192
-Node: Arrays Summary514959
-Node: Functions517052
-Node: Built-in518090
-Node: Calling Built-in519171
-Node: Numeric Functions521167
-Ref: Numeric Functions-Footnote-1525195
-Ref: Numeric Functions-Footnote-2525552
-Ref: Numeric Functions-Footnote-3525600
-Node: String Functions525872
-Ref: String Functions-Footnote-1549530
-Ref: String Functions-Footnote-2549658
-Ref: String Functions-Footnote-3549906
-Node: Gory Details549993
-Ref: table-sub-escapes551784
-Ref: table-sub-proposed553303
-Ref: table-posix-sub554666
-Ref: table-gensub-escapes556207
-Ref: Gory Details-Footnote-1557030
-Node: I/O Functions557184
-Ref: table-system-return-values563766
-Ref: I/O Functions-Footnote-1565746
-Ref: I/O Functions-Footnote-2565894
-Node: Time Functions566014
-Ref: Time Functions-Footnote-1576681
-Ref: Time Functions-Footnote-2576749
-Ref: Time Functions-Footnote-3576907
-Ref: Time Functions-Footnote-4577018
-Ref: Time Functions-Footnote-5577130
-Ref: Time Functions-Footnote-6577357
-Node: Bitwise Functions577623
-Ref: table-bitwise-ops578217
-Ref: Bitwise Functions-Footnote-1584250
-Ref: Bitwise Functions-Footnote-2584423
-Node: Type Functions584614
-Node: I18N Functions587289
-Node: User-defined588940
-Node: Definition Syntax589745
-Ref: Definition Syntax-Footnote-1595432
-Node: Function Example595503
-Ref: Function Example-Footnote-1598425
-Node: Function Caveats598447
-Node: Calling A Function598965
-Node: Variable Scope599923
-Node: Pass By Value/Reference602917
-Node: Return Statement606416
-Node: Dynamic Typing609395
-Node: Indirect Calls610325
-Ref: Indirect Calls-Footnote-1620576
-Node: Functions Summary620704
-Node: Library Functions623409
-Ref: Library Functions-Footnote-1627016
-Ref: Library Functions-Footnote-2627159
-Node: Library Names627330
-Ref: Library Names-Footnote-1630790
-Ref: Library Names-Footnote-2631013
-Node: General Functions631099
-Node: Strtonum Function632202
-Node: Assert Function635224
-Node: Round Function638550
-Node: Cliff Random Function640091
-Node: Ordinal Functions641107
-Ref: Ordinal Functions-Footnote-1644170
-Ref: Ordinal Functions-Footnote-2644422
-Node: Join Function644632
-Ref: Join Function-Footnote-1646402
-Node: Getlocaltime Function646602
-Node: Readfile Function650344
-Node: Shell Quoting652316
-Node: Data File Management653717
-Node: Filetrans Function654349
-Node: Rewind Function658445
-Node: File Checking660351
-Ref: File Checking-Footnote-1661685
-Node: Empty Files661886
-Node: Ignoring Assigns663865
-Node: Getopt Function665415
-Ref: Getopt Function-Footnote-1676884
-Node: Passwd Functions677084
-Ref: Passwd Functions-Footnote-1685923
-Node: Group Functions686011
-Ref: Group Functions-Footnote-1693909
-Node: Walking Arrays694116
-Node: Library Functions Summary697124
-Node: Library Exercises698530
-Node: Sample Programs698995
-Node: Running Examples699765
-Node: Clones700493
-Node: Cut Program701717
-Node: Egrep Program711646
-Ref: Egrep Program-Footnote-1719158
-Node: Id Program719268
-Node: Split Program722948
-Ref: Split Program-Footnote-1726407
-Node: Tee Program726536
-Node: Uniq Program729326
-Node: Wc Program736752
-Ref: Wc Program-Footnote-1741007
-Node: Miscellaneous Programs741101
-Node: Dupword Program742314
-Node: Alarm Program744344
-Node: Translate Program749199
-Ref: Translate Program-Footnote-1753764
-Node: Labels Program754034
-Ref: Labels Program-Footnote-1757385
-Node: Word Sorting757469
-Node: History Sorting761541
-Node: Extract Program763376
-Node: Simple Sed770905
-Node: Igawk Program773979
-Ref: Igawk Program-Footnote-1788310
-Ref: Igawk Program-Footnote-2788512
-Ref: Igawk Program-Footnote-3788634
-Node: Anagram Program788749
-Node: Signature Program791811
-Node: Programs Summary793058
-Node: Programs Exercises794272
-Ref: Programs Exercises-Footnote-1798401
-Node: Advanced Features798492
-Node: Nondecimal Data800482
-Node: Array Sorting802073
-Node: Controlling Array Traversal802773
-Ref: Controlling Array Traversal-Footnote-1811140
-Node: Array Sorting Functions811258
-Ref: Array Sorting Functions-Footnote-1816349
-Node: Two-way I/O816545
-Ref: Two-way I/O-Footnote-1823096
-Ref: Two-way I/O-Footnote-2823283
-Node: TCP/IP Networking823365
-Node: Profiling826483
-Ref: Profiling-Footnote-1835155
-Node: Advanced Features Summary835478
-Node: Internationalization837322
-Node: I18N and L10N838802
-Node: Explaining gettext839489
-Ref: Explaining gettext-Footnote-1845381
-Ref: Explaining gettext-Footnote-2845566
-Node: Programmer i18n845731
-Ref: Programmer i18n-Footnote-1850680
-Node: Translator i18n850729
-Node: String Extraction851523
-Ref: String Extraction-Footnote-1852655
-Node: Printf Ordering852741
-Ref: Printf Ordering-Footnote-1855527
-Node: I18N Portability855591
-Ref: I18N Portability-Footnote-1858047
-Node: I18N Example858110
-Ref: I18N Example-Footnote-1860916
-Node: Gawk I18N860989
-Node: I18N Summary861634
-Node: Debugger862975
-Node: Debugging863997
-Node: Debugging Concepts864438
-Node: Debugging Terms866247
-Node: Awk Debugging868822
-Node: Sample Debugging Session869728
-Node: Debugger Invocation870262
-Node: Finding The Bug871648
-Node: List of Debugger Commands878126
-Node: Breakpoint Control879459
-Node: Debugger Execution Control883153
-Node: Viewing And Changing Data886515
-Node: Execution Stack889889
-Node: Debugger Info891526
-Node: Miscellaneous Debugger Commands895597
-Node: Readline Support900685
-Node: Limitations901581
-Node: Debugging Summary903690
-Node: Arbitrary Precision Arithmetic904969
-Node: Computer Arithmetic906385
-Ref: table-numeric-ranges909976
-Ref: Computer Arithmetic-Footnote-1910698
-Node: Math Definitions910755
-Ref: table-ieee-formats914069
-Ref: Math Definitions-Footnote-1914672
-Node: MPFR features914777
-Node: FP Math Caution916494
-Ref: FP Math Caution-Footnote-1917566
-Node: Inexactness of computations917935
-Node: Inexact representation918895
-Node: Comparing FP Values920255
-Node: Errors accumulate921337
-Node: Getting Accuracy922770
-Node: Try To Round925480
-Node: Setting precision926379
-Ref: table-predefined-precision-strings927076
-Node: Setting the rounding mode928906
-Ref: table-gawk-rounding-modes929280
-Ref: Setting the rounding mode-Footnote-1932688
-Node: Arbitrary Precision Integers932867
-Ref: Arbitrary Precision Integers-Footnote-1936054
-Node: POSIX Floating Point Problems936203
-Ref: POSIX Floating Point Problems-Footnote-1940085
-Node: Floating point summary940123
-Node: Dynamic Extensions942313
-Node: Extension Intro943866
-Node: Plugin License945132
-Node: Extension Mechanism Outline945929
-Ref: figure-load-extension946368
-Ref: figure-register-new-function947933
-Ref: figure-call-new-function949025
-Node: Extension API Description951087
-Node: Extension API Functions Introduction952729
-Node: General Data Types958063
-Ref: General Data Types-Footnote-1965268
-Node: Memory Allocation Functions965567
-Ref: Memory Allocation Functions-Footnote-1968412
-Node: Constructor Functions968511
-Node: Registration Functions971510
-Node: Extension Functions972195
-Node: Exit Callback Functions977408
-Node: Extension Version String978658
-Node: Input Parsers979321
-Node: Output Wrappers992028
-Node: Two-way processors996540
-Node: Printing Messages998805
-Ref: Printing Messages-Footnote-1999976
-Node: Updating ERRNO1000129
-Node: Requesting Values1000868
-Ref: table-value-types-returned1001605
-Node: Accessing Parameters1002541
-Node: Symbol Table Access1003776
-Node: Symbol table by name1004288
-Node: Symbol table by cookie1006077
-Ref: Symbol table by cookie-Footnote-11010262
-Node: Cached values1010326
-Ref: Cached values-Footnote-11013862
-Node: Array Manipulation1013953
-Ref: Array Manipulation-Footnote-11015044
-Node: Array Data Types1015081
-Ref: Array Data Types-Footnote-11017739
-Node: Array Functions1017831
-Node: Flattening Arrays1022230
-Node: Creating Arrays1029171
-Node: Redirection API1033940
-Node: Extension API Variables1036782
-Node: Extension Versioning1037415
-Ref: gawk-api-version1037852
-Node: Extension API Informational Variables1039580
-Node: Extension API Boilerplate1040644
-Node: Changes from API V11044506
-Node: Finding Extensions1045166
-Node: Extension Example1045725
-Node: Internal File Description1046523
-Node: Internal File Ops1050603
-Ref: Internal File Ops-Footnote-11062003
-Node: Using Internal File Ops1062143
-Ref: Using Internal File Ops-Footnote-11064526
-Node: Extension Samples1064800
-Node: Extension Sample File Functions1066329
-Node: Extension Sample Fnmatch1073978
-Node: Extension Sample Fork1075465
-Node: Extension Sample Inplace1076683
-Node: Extension Sample Ord1079893
-Node: Extension Sample Readdir1080729
-Ref: table-readdir-file-types1081618
-Node: Extension Sample Revout1082423
-Node: Extension Sample Rev2way1083012
-Node: Extension Sample Read write array1083752
-Node: Extension Sample Readfile1085694
-Node: Extension Sample Time1086789
-Node: Extension Sample API Tests1088137
-Node: gawkextlib1088629
-Node: Extension summary1091076
-Node: Extension Exercises1094778
-Node: Language History1096276
-Node: V7/SVR3.11097932
-Node: SVR41100084
-Node: POSIX1101518
-Node: BTL1102897
-Node: POSIX/GNU1103626
-Node: Feature History1109404
-Node: Common Extensions1123715
-Node: Ranges and Locales1124998
-Ref: Ranges and Locales-Footnote-11129614
-Ref: Ranges and Locales-Footnote-21129641
-Ref: Ranges and Locales-Footnote-31129876
-Node: Contributors1130097
-Node: History summary1135657
-Node: Installation1137037
-Node: Gawk Distribution1137981
-Node: Getting1138465
-Node: Extracting1139426
-Node: Distribution contents1141064
-Node: Unix Installation1147406
-Node: Quick Installation1148088
-Node: Shell Startup Files1150502
-Node: Additional Configuration Options1151591
-Node: Configuration Philosophy1153580
-Node: Non-Unix Installation1155949
-Node: PC Installation1156409
-Node: PC Binary Installation1157247
-Node: PC Compiling1157682
-Node: PC Using1158799
-Node: Cygwin1161844
-Node: MSYS1162614
-Node: VMS Installation1163115
-Node: VMS Compilation1163906
-Ref: VMS Compilation-Footnote-11165135
-Node: VMS Dynamic Extensions1165193
-Node: VMS Installation Details1166878
-Node: VMS Running1169131
-Node: VMS GNV1173410
-Node: VMS Old Gawk1174145
-Node: Bugs1174616
-Node: Bug address1175279
-Node: Usenet1177676
-Node: Maintainers1178453
-Node: Other Versions1179829
-Node: Installation summary1186413
-Node: Notes1187448
-Node: Compatibility Mode1188313
-Node: Additions1189095
-Node: Accessing The Source1190020
-Node: Adding Code1191455
-Node: New Ports1197673
-Node: Derived Files1202161
-Ref: Derived Files-Footnote-11207646
-Ref: Derived Files-Footnote-21207681
-Ref: Derived Files-Footnote-31208279
-Node: Future Extensions1208393
-Node: Implementation Limitations1209051
-Node: Extension Design1210234
-Node: Old Extension Problems1211388
-Ref: Old Extension Problems-Footnote-11212906
-Node: Extension New Mechanism Goals1212963
-Ref: Extension New Mechanism Goals-Footnote-11216327
-Node: Extension Other Design Decisions1216516
-Node: Extension Future Growth1218629
-Node: Old Extension Mechanism1219465
-Node: Notes summary1221228
-Node: Basic Concepts1222410
-Node: Basic High Level1223091
-Ref: figure-general-flow1223373
-Ref: figure-process-flow1224058
-Ref: Basic High Level-Footnote-11227359
-Node: Basic Data Typing1227544
-Node: Glossary1230872
-Node: Copying1262819
-Node: GNU Free Documentation License1300358
-Node: Index1325476
+Node: Foreword343204
+Node: Foreword447646
+Node: Preface49178
+Ref: Preface-Footnote-152037
+Ref: Preface-Footnote-252144
+Ref: Preface-Footnote-352378
+Node: History52520
+Node: Names54872
+Ref: Names-Footnote-155966
+Node: This Manual56113
+Ref: This Manual-Footnote-162598
+Node: Conventions62698
+Node: Manual History65052
+Ref: Manual History-Footnote-168047
+Ref: Manual History-Footnote-268088
+Node: How To Contribute68162
+Node: Acknowledgments68813
+Node: Getting Started73699
+Node: Running gawk76138
+Node: One-shot77328
+Node: Read Terminal78591
+Node: Long80584
+Node: Executable Scripts82097
+Ref: Executable Scripts-Footnote-184892
+Node: Comments84995
+Node: Quoting87479
+Node: DOS Quoting92996
+Node: Sample Data Files95051
+Node: Very Simple97646
+Node: Two Rules102548
+Node: More Complex104433
+Node: Statements/Lines107299
+Ref: Statements/Lines-Footnote-1111758
+Node: Other Features112023
+Node: When112959
+Ref: When-Footnote-1114713
+Node: Intro Summary114778
+Node: Invoking Gawk115662
+Node: Command Line117176
+Node: Options117974
+Ref: Options-Footnote-1134593
+Ref: Options-Footnote-2134823
+Node: Other Arguments134848
+Node: Naming Standard Input137795
+Node: Environment Variables138888
+Node: AWKPATH Variable139446
+Ref: AWKPATH Variable-Footnote-1142857
+Ref: AWKPATH Variable-Footnote-2142891
+Node: AWKLIBPATH Variable143152
+Node: Other Environment Variables144409
+Node: Exit Status148230
+Node: Include Files148907
+Node: Loading Shared Libraries152502
+Node: Obsolete153930
+Node: Undocumented154622
+Node: Invoking Summary154919
+Node: Regexp156579
+Node: Regexp Usage158033
+Node: Escape Sequences160070
+Node: Regexp Operators166302
+Ref: Regexp Operators-Footnote-1173718
+Ref: Regexp Operators-Footnote-2173865
+Node: Bracket Expressions173963
+Ref: table-char-classes176439
+Node: Leftmost Longest179576
+Node: Computed Regexps180879
+Node: GNU Regexp Operators184306
+Node: Case-sensitivity187985
+Ref: Case-sensitivity-Footnote-1190872
+Ref: Case-sensitivity-Footnote-2191107
+Node: Regexp Summary191215
+Node: Reading Files192681
+Node: Records194950
+Node: awk split records195683
+Node: gawk split records200614
+Ref: gawk split records-Footnote-1205154
+Node: Fields205191
+Node: Nonconstant Fields207932
+Ref: Nonconstant Fields-Footnote-1210168
+Node: Changing Fields210372
+Node: Field Separators216300
+Node: Default Field Splitting218998
+Node: Regexp Field Splitting220116
+Node: Single Character Fields223469
+Node: Command Line Field Separator224529
+Node: Full Line Fields227747
+Ref: Full Line Fields-Footnote-1229269
+Ref: Full Line Fields-Footnote-2229315
+Node: Field Splitting Summary229416
+Node: Constant Size231490
+Node: Fixed width data232222
+Node: Skipping intervening235689
+Node: Allowing trailing data236487
+Node: Fields with fixed data237524
+Node: Splitting By Content239042
+Ref: Splitting By Content-Footnote-1242692
+Node: Testing field creation242855
+Node: Multiple Line244476
+Ref: Multiple Line-Footnote-1250360
+Node: Getline250539
+Node: Plain Getline253008
+Node: Getline/Variable255649
+Node: Getline/File256800
+Node: Getline/Variable/File258188
+Ref: Getline/Variable/File-Footnote-1259793
+Node: Getline/Pipe259881
+Node: Getline/Variable/Pipe262588
+Node: Getline/Coprocess263723
+Node: Getline/Variable/Coprocess264990
+Node: Getline Notes265732
+Node: Getline Summary268529
+Ref: table-getline-variants268953
+Node: Read Timeout269701
+Ref: Read Timeout-Footnote-1273607
+Node: Retrying Input273665
+Node: Command-line directories274864
+Node: Input Summary275770
+Node: Input Exercises278942
+Node: Printing279670
+Node: Print281504
+Node: Print Examples282961
+Node: Output Separators285741
+Node: OFMT287758
+Node: Printf289114
+Node: Basic Printf289899
+Node: Control Letters291473
+Node: Format Modifiers295461
+Node: Printf Examples301476
+Node: Redirection303962
+Node: Special FD310803
+Ref: Special FD-Footnote-1313971
+Node: Special Files314045
+Node: Other Inherited Files314662
+Node: Special Network315663
+Node: Special Caveats316523
+Node: Close Files And Pipes317472
+Ref: table-close-pipe-return-values324379
+Ref: Close Files And Pipes-Footnote-1325162
+Ref: Close Files And Pipes-Footnote-2325310
+Node: Nonfatal325462
+Node: Output Summary327787
+Node: Output Exercises329009
+Node: Expressions329688
+Node: Values330876
+Node: Constants331554
+Node: Scalar Constants332245
+Ref: Scalar Constants-Footnote-1333109
+Node: Nondecimal-numbers333359
+Node: Regexp Constants336360
+Node: Using Constant Regexps336886
+Node: Standard Regexp Constants337508
+Node: Strong Regexp Constants340696
+Node: Variables343654
+Node: Using Variables344311
+Node: Assignment Options346221
+Node: Conversion348094
+Node: Strings And Numbers348618
+Ref: Strings And Numbers-Footnote-1351681
+Node: Locale influences conversions351790
+Ref: table-locale-affects354548
+Node: All Operators355166
+Node: Arithmetic Ops355795
+Node: Concatenation358301
+Ref: Concatenation-Footnote-1361148
+Node: Assignment Ops361255
+Ref: table-assign-ops366246
+Node: Increment Ops367559
+Node: Truth Values and Conditions371019
+Node: Truth Values372093
+Node: Typing and Comparison373141
+Node: Variable Typing373961
+Ref: Variable Typing-Footnote-1380424
+Ref: Variable Typing-Footnote-2380496
+Node: Comparison Operators380573
+Ref: table-relational-ops380992
+Node: POSIX String Comparison384487
+Ref: POSIX String Comparison-Footnote-1386182
+Ref: POSIX String Comparison-Footnote-2386321
+Node: Boolean Ops386405
+Ref: Boolean Ops-Footnote-1390887
+Node: Conditional Exp390979
+Node: Function Calls392715
+Node: Precedence396592
+Node: Locales400251
+Node: Expressions Summary401883
+Node: Patterns and Actions404456
+Node: Pattern Overview405576
+Node: Regexp Patterns407253
+Node: Expression Patterns407795
+Node: Ranges411576
+Node: BEGIN/END414684
+Node: Using BEGIN/END415445
+Ref: Using BEGIN/END-Footnote-1418181
+Node: I/O And BEGIN/END418287
+Node: BEGINFILE/ENDFILE420601
+Node: Empty423508
+Node: Using Shell Variables423825
+Node: Action Overview426099
+Node: Statements428424
+Node: If Statement430272
+Node: While Statement431767
+Node: Do Statement433795
+Node: For Statement434943
+Node: Switch Statement438101
+Node: Break Statement440487
+Node: Continue Statement442579
+Node: Next Statement444406
+Node: Nextfile Statement446789
+Node: Exit Statement449441
+Node: Built-in Variables451844
+Node: User-modified452977
+Node: Auto-set460744
+Ref: Auto-set-Footnote-1475472
+Ref: Auto-set-Footnote-2475678
+Node: ARGC and ARGV475734
+Node: Pattern Action Summary479947
+Node: Arrays482377
+Node: Array Basics483706
+Node: Array Intro484550
+Ref: figure-array-elements486525
+Ref: Array Intro-Footnote-1489229
+Node: Reference to Elements489357
+Node: Assigning Elements491821
+Node: Array Example492312
+Node: Scanning an Array494071
+Node: Controlling Scanning497093
+Ref: Controlling Scanning-Footnote-1502492
+Node: Numeric Array Subscripts502808
+Node: Uninitialized Subscripts504992
+Node: Delete506611
+Ref: Delete-Footnote-1509363
+Node: Multidimensional509420
+Node: Multiscanning512515
+Node: Arrays of Arrays514106
+Node: Arrays Summary518873
+Node: Functions520966
+Node: Built-in522004
+Node: Calling Built-in523085
+Node: Numeric Functions525081
+Ref: Numeric Functions-Footnote-1529109
+Ref: Numeric Functions-Footnote-2529466
+Ref: Numeric Functions-Footnote-3529514
+Node: String Functions529786
+Ref: String Functions-Footnote-1553444
+Ref: String Functions-Footnote-2553572
+Ref: String Functions-Footnote-3553820
+Node: Gory Details553907
+Ref: table-sub-escapes555698
+Ref: table-sub-proposed557217
+Ref: table-posix-sub558580
+Ref: table-gensub-escapes560121
+Ref: Gory Details-Footnote-1560944
+Node: I/O Functions561098
+Ref: table-system-return-values567680
+Ref: I/O Functions-Footnote-1569660
+Ref: I/O Functions-Footnote-2569808
+Node: Time Functions569928
+Ref: Time Functions-Footnote-1580595
+Ref: Time Functions-Footnote-2580663
+Ref: Time Functions-Footnote-3580821
+Ref: Time Functions-Footnote-4580932
+Ref: Time Functions-Footnote-5581044
+Ref: Time Functions-Footnote-6581271
+Node: Bitwise Functions581537
+Ref: table-bitwise-ops582131
+Ref: Bitwise Functions-Footnote-1588164
+Ref: Bitwise Functions-Footnote-2588337
+Node: Type Functions588528
+Node: I18N Functions591203
+Node: User-defined592854
+Node: Definition Syntax593659
+Ref: Definition Syntax-Footnote-1599346
+Node: Function Example599417
+Ref: Function Example-Footnote-1602339
+Node: Function Caveats602361
+Node: Calling A Function602879
+Node: Variable Scope603837
+Node: Pass By Value/Reference606831
+Node: Return Statement610330
+Node: Dynamic Typing613309
+Node: Indirect Calls614239
+Ref: Indirect Calls-Footnote-1624490
+Node: Functions Summary624618
+Node: Library Functions627323
+Ref: Library Functions-Footnote-1630930
+Ref: Library Functions-Footnote-2631073
+Node: Library Names631244
+Ref: Library Names-Footnote-1634704
+Ref: Library Names-Footnote-2634927
+Node: General Functions635013
+Node: Strtonum Function636116
+Node: Assert Function639138
+Node: Round Function642464
+Node: Cliff Random Function644005
+Node: Ordinal Functions645021
+Ref: Ordinal Functions-Footnote-1648084
+Ref: Ordinal Functions-Footnote-2648336
+Node: Join Function648546
+Ref: Join Function-Footnote-1650316
+Node: Getlocaltime Function650516
+Node: Readfile Function654258
+Node: Shell Quoting656230
+Node: Data File Management657631
+Node: Filetrans Function658263
+Node: Rewind Function662359
+Node: File Checking664265
+Ref: File Checking-Footnote-1665599
+Node: Empty Files665800
+Node: Ignoring Assigns667779
+Node: Getopt Function669329
+Ref: Getopt Function-Footnote-1680798
+Node: Passwd Functions680998
+Ref: Passwd Functions-Footnote-1689837
+Node: Group Functions689925
+Ref: Group Functions-Footnote-1697823
+Node: Walking Arrays698030
+Node: Library Functions Summary701038
+Node: Library Exercises702444
+Node: Sample Programs702909
+Node: Running Examples703679
+Node: Clones704407
+Node: Cut Program705631
+Node: Egrep Program715560
+Ref: Egrep Program-Footnote-1723072
+Node: Id Program723182
+Node: Split Program726862
+Ref: Split Program-Footnote-1730321
+Node: Tee Program730450
+Node: Uniq Program733240
+Node: Wc Program740666
+Ref: Wc Program-Footnote-1744921
+Node: Miscellaneous Programs745015
+Node: Dupword Program746228
+Node: Alarm Program748258
+Node: Translate Program753113
+Ref: Translate Program-Footnote-1757678
+Node: Labels Program757948
+Ref: Labels Program-Footnote-1761299
+Node: Word Sorting761383
+Node: History Sorting765455
+Node: Extract Program767290
+Node: Simple Sed774819
+Node: Igawk Program777893
+Ref: Igawk Program-Footnote-1792224
+Ref: Igawk Program-Footnote-2792426
+Ref: Igawk Program-Footnote-3792548
+Node: Anagram Program792663
+Node: Signature Program795725
+Node: Programs Summary796972
+Node: Programs Exercises798186
+Ref: Programs Exercises-Footnote-1802315
+Node: Advanced Features802406
+Node: Nondecimal Data804396
+Node: Array Sorting805987
+Node: Controlling Array Traversal806687
+Ref: Controlling Array Traversal-Footnote-1815054
+Node: Array Sorting Functions815172
+Ref: Array Sorting Functions-Footnote-1820263
+Node: Two-way I/O820459
+Ref: Two-way I/O-Footnote-1827010
+Ref: Two-way I/O-Footnote-2827197
+Node: TCP/IP Networking827279
+Node: Profiling830397
+Ref: Profiling-Footnote-1839069
+Node: Advanced Features Summary839392
+Node: Internationalization841236
+Node: I18N and L10N842716
+Node: Explaining gettext843403
+Ref: Explaining gettext-Footnote-1849295
+Ref: Explaining gettext-Footnote-2849480
+Node: Programmer i18n849645
+Ref: Programmer i18n-Footnote-1854594
+Node: Translator i18n854643
+Node: String Extraction855437
+Ref: String Extraction-Footnote-1856569
+Node: Printf Ordering856655
+Ref: Printf Ordering-Footnote-1859441
+Node: I18N Portability859505
+Ref: I18N Portability-Footnote-1861961
+Node: I18N Example862024
+Ref: I18N Example-Footnote-1864830
+Node: Gawk I18N864903
+Node: I18N Summary865548
+Node: Debugger866889
+Node: Debugging867911
+Node: Debugging Concepts868352
+Node: Debugging Terms870161
+Node: Awk Debugging872736
+Node: Sample Debugging Session873642
+Node: Debugger Invocation874176
+Node: Finding The Bug875562
+Node: List of Debugger Commands882040
+Node: Breakpoint Control883373
+Node: Debugger Execution Control887067
+Node: Viewing And Changing Data890429
+Node: Execution Stack893803
+Node: Debugger Info895440
+Node: Miscellaneous Debugger Commands899511
+Node: Readline Support904599
+Node: Limitations905495
+Node: Debugging Summary907604
+Node: Arbitrary Precision Arithmetic908883
+Node: Computer Arithmetic910299
+Ref: table-numeric-ranges913890
+Ref: Computer Arithmetic-Footnote-1914612
+Node: Math Definitions914669
+Ref: table-ieee-formats917983
+Ref: Math Definitions-Footnote-1918586
+Node: MPFR features918691
+Node: FP Math Caution920408
+Ref: FP Math Caution-Footnote-1921480
+Node: Inexactness of computations921849
+Node: Inexact representation922809
+Node: Comparing FP Values924169
+Node: Errors accumulate925251
+Node: Getting Accuracy926684
+Node: Try To Round929394
+Node: Setting precision930293
+Ref: table-predefined-precision-strings930990
+Node: Setting the rounding mode932820
+Ref: table-gawk-rounding-modes933194
+Ref: Setting the rounding mode-Footnote-1936602
+Node: Arbitrary Precision Integers936781
+Ref: Arbitrary Precision Integers-Footnote-1939968
+Node: POSIX Floating Point Problems940117
+Ref: POSIX Floating Point Problems-Footnote-1943999
+Node: Floating point summary944037
+Node: Dynamic Extensions946227
+Node: Extension Intro947780
+Node: Plugin License949046
+Node: Extension Mechanism Outline949843
+Ref: figure-load-extension950282
+Ref: figure-register-new-function951847
+Ref: figure-call-new-function952939
+Node: Extension API Description955001
+Node: Extension API Functions Introduction956643
+Node: General Data Types961977
+Ref: General Data Types-Footnote-1969182
+Node: Memory Allocation Functions969481
+Ref: Memory Allocation Functions-Footnote-1972326
+Node: Constructor Functions972425
+Node: Registration Functions975424
+Node: Extension Functions976109
+Node: Exit Callback Functions981322
+Node: Extension Version String982572
+Node: Input Parsers983235
+Node: Output Wrappers995942
+Node: Two-way processors1000454
+Node: Printing Messages1002719
+Ref: Printing Messages-Footnote-11003890
+Node: Updating ERRNO1004043
+Node: Requesting Values1004782
+Ref: table-value-types-returned1005519
+Node: Accessing Parameters1006455
+Node: Symbol Table Access1007690
+Node: Symbol table by name1008202
+Node: Symbol table by cookie1009991
+Ref: Symbol table by cookie-Footnote-11014176
+Node: Cached values1014240
+Ref: Cached values-Footnote-11017776
+Node: Array Manipulation1017867
+Ref: Array Manipulation-Footnote-11018958
+Node: Array Data Types1018995
+Ref: Array Data Types-Footnote-11021653
+Node: Array Functions1021745
+Node: Flattening Arrays1026144
+Node: Creating Arrays1033085
+Node: Redirection API1037854
+Node: Extension API Variables1040696
+Node: Extension Versioning1041329
+Ref: gawk-api-version1041766
+Node: Extension API Informational Variables1043494
+Node: Extension API Boilerplate1044558
+Node: Changes from API V11048420
+Node: Finding Extensions1049080
+Node: Extension Example1049639
+Node: Internal File Description1050437
+Node: Internal File Ops1054517
+Ref: Internal File Ops-Footnote-11065917
+Node: Using Internal File Ops1066057
+Ref: Using Internal File Ops-Footnote-11068440
+Node: Extension Samples1068714
+Node: Extension Sample File Functions1070243
+Node: Extension Sample Fnmatch1077892
+Node: Extension Sample Fork1079379
+Node: Extension Sample Inplace1080597
+Node: Extension Sample Ord1083807
+Node: Extension Sample Readdir1084643
+Ref: table-readdir-file-types1085532
+Node: Extension Sample Revout1086337
+Node: Extension Sample Rev2way1086926
+Node: Extension Sample Read write array1087666
+Node: Extension Sample Readfile1089608
+Node: Extension Sample Time1090703
+Node: Extension Sample API Tests1092051
+Node: gawkextlib1092543
+Node: Extension summary1094990
+Node: Extension Exercises1098692
+Node: Language History1100190
+Node: V7/SVR3.11101846
+Node: SVR41103998
+Node: POSIX1105432
+Node: BTL1106811
+Node: POSIX/GNU1107540
+Node: Feature History1113318
+Node: Common Extensions1127629
+Node: Ranges and Locales1128912
+Ref: Ranges and Locales-Footnote-11133528
+Ref: Ranges and Locales-Footnote-21133555
+Ref: Ranges and Locales-Footnote-31133790
+Node: Contributors1134011
+Node: History summary1139571
+Node: Installation1140951
+Node: Gawk Distribution1141895
+Node: Getting1142379
+Node: Extracting1143340
+Node: Distribution contents1144978
+Node: Unix Installation1151320
+Node: Quick Installation1152002
+Node: Shell Startup Files1154416
+Node: Additional Configuration Options1155505
+Node: Configuration Philosophy1157494
+Node: Non-Unix Installation1159863
+Node: PC Installation1160323
+Node: PC Binary Installation1161161
+Node: PC Compiling1161596
+Node: PC Using1162713
+Node: Cygwin1165758
+Node: MSYS1166528
+Node: VMS Installation1167029
+Node: VMS Compilation1167820
+Ref: VMS Compilation-Footnote-11169049
+Node: VMS Dynamic Extensions1169107
+Node: VMS Installation Details1170792
+Node: VMS Running1173045
+Node: VMS GNV1177324
+Node: VMS Old Gawk1178059
+Node: Bugs1178530
+Node: Bug address1179193
+Node: Usenet1181590
+Node: Maintainers1182367
+Node: Other Versions1183743
+Node: Installation summary1190327
+Node: Notes1191362
+Node: Compatibility Mode1192227
+Node: Additions1193009
+Node: Accessing The Source1193934
+Node: Adding Code1195369
+Node: New Ports1201587
+Node: Derived Files1206075
+Ref: Derived Files-Footnote-11211560
+Ref: Derived Files-Footnote-21211595
+Ref: Derived Files-Footnote-31212193
+Node: Future Extensions1212307
+Node: Implementation Limitations1212965
+Node: Extension Design1214148
+Node: Old Extension Problems1215302
+Ref: Old Extension Problems-Footnote-11216820
+Node: Extension New Mechanism Goals1216877
+Ref: Extension New Mechanism Goals-Footnote-11220241
+Node: Extension Other Design Decisions1220430
+Node: Extension Future Growth1222543
+Node: Old Extension Mechanism1223379
+Node: Notes summary1225142
+Node: Basic Concepts1226324
+Node: Basic High Level1227005
+Ref: figure-general-flow1227287
+Ref: figure-process-flow1227972
+Ref: Basic High Level-Footnote-11231273
+Node: Basic Data Typing1231458
+Node: Glossary1234786
+Node: Copying1266733
+Node: GNU Free Documentation License1304272
+Node: Index1329390

End Tag Table