aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1446
1 files changed, 788 insertions, 658 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 55c9bb3f..1a5e6bfd 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -381,6 +381,8 @@ in (a) below. A copy of the license is included in the section entitled
* Arrays Summary:: Summary of arrays.
* Built-in:: Summarizes the built-in functions.
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean
+ values.
* Numeric Functions:: Functions that work with numbers,
including 'int()', 'sin()'
and 'rand()'.
@@ -490,6 +492,7 @@ in (a) below. A copy of the license is included in the section entitled
* Programs Summary:: Summary of programs.
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
* Controlling Array Traversal:: How to use PROCINFO["sorted_in"].
@@ -553,6 +556,7 @@ in (a) below. A copy of the license is included in the section entitled
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.
* Getting Accuracy:: Getting more accuracy takes some work.
* Try To Round:: Add digits and round.
* Setting precision:: How to set the precision.
@@ -3225,7 +3229,9 @@ change. The variables are:
'AWK_HASH'
If this variable exists with a value of 'gst', 'gawk' switches to
using the hash function from GNU Smalltalk for managing arrays.
- This function may be marginally faster than the standard function.
+ With a value of 'fnv1a', 'gawk' uses the FNV1-A hash function
+ (http://www.isthe.com/chongo/tech/comp/fnv/index.html). These
+ functions may be marginally faster than the standard function.
'AWKREADFUNC'
If this variable exists, 'gawk' switches to reading source files
@@ -6976,8 +6982,8 @@ width. Here is a list of the format-control letters:
On systems supporting IEEE 754 floating-point format, values
representing negative infinity are formatted as '-inf' or
'-infinity', and positive infinity as 'inf' or 'infinity'. The
- special "not a number" value formats as '-nan' or 'nan' (*note Math
- Definitions::).
+ special "not a number" value formats as '-nan' or 'nan' (*note
+ Strange values::).
'%F'
Like '%f', but the infinity and "not a number" values are spelled
@@ -12785,6 +12791,7 @@ your convenience.
* Menu:
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean values.
* Numeric Functions:: Functions that work with numbers, including
'int()', 'sin()' and 'rand()'.
* String Functions:: Functions for string manipulation, such as
@@ -12797,7 +12804,7 @@ your convenience.
* I18N Functions:: Functions for string translation.

-File: gawk.info, Node: Calling Built-in, Next: Numeric Functions, Up: Built-in
+File: gawk.info, Node: Calling Built-in, Next: Boolean Functions, Up: Built-in
9.1.1 Calling Built-in Functions
--------------------------------
@@ -12841,9 +12848,24 @@ six, and then 12, and 'atan2()' is called with the two arguments six and
10, then 11, and 'atan2()' is called with the two arguments 11 and 10.

-File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Calling Built-in, Up: Built-in
+File: gawk.info, Node: Boolean Functions, Next: Numeric Functions, Prev: Calling Built-in, Up: Built-in
-9.1.2 Numeric Functions
+9.1.2 Generating Boolean Values
+-------------------------------
+
+This function is specific to 'gawk'. It is not available in
+compatibility mode (*note Options::):
+
+'mkbool(EXPRESSION)'
+ Return a Boolean-typed value based on the regular Boolean value of
+ EXPRESSION. Boolean "true" values have numeric value one. Boolean
+ "false" values have numeric zero. This is discussed in more detail
+ in *note Boolean Typed Values::.
+
+
+File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Boolean Functions, Up: Built-in
+
+9.1.3 Numeric Functions
-----------------------
The following list describes all of the built-in functions that work
@@ -12869,7 +12891,7 @@ brackets ([ ]):
'log(X)'
Return the natural logarithm of X, if X is positive; otherwise,
- return 'NaN' ("not a number") on IEEE 754 systems. Additionally,
+ return NaN ("not a number") on IEEE 754 systems. Additionally,
'gawk' prints a warning message when 'x' is negative.
'rand()'
@@ -12967,7 +12989,7 @@ the same sequence of random numbers over and over again.

File: gawk.info, Node: String Functions, Next: I/O Functions, Prev: Numeric Functions, Up: Built-in
-9.1.3 String-Manipulation Functions
+9.1.4 String-Manipulation Functions
-----------------------------------
The functions in this minor node look at or change the text of one or
@@ -13539,7 +13561,7 @@ number zero.

File: gawk.info, Node: Gory Details, Up: String Functions
-9.1.3.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
+9.1.4.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
.....................................................................
CAUTION: This subsubsection has been reported to cause headaches.
@@ -13685,7 +13707,7 @@ POSIX rules.

File: gawk.info, Node: I/O Functions, Next: Time Functions, Prev: String Functions, Up: Built-in
-9.1.4 Input/Output Functions
+9.1.5 Input/Output Functions
----------------------------
The following functions relate to input/output (I/O). Optional
@@ -13902,7 +13924,7 @@ the way this was done was probably a mistake.

File: gawk.info, Node: Time Functions, Next: Bitwise Functions, Prev: I/O Functions, Up: Built-in
-9.1.5 Time Functions
+9.1.6 Time Functions
--------------------
'awk' programs are commonly used to process log files containing
@@ -14219,7 +14241,7 @@ does not appear in the returned string or appears literally.

File: gawk.info, Node: Bitwise Functions, Next: Type Functions, Prev: Time Functions, Up: Built-in
-9.1.6 Bit-Manipulation Functions
+9.1.7 Bit-Manipulation Functions
--------------------------------
I can explain it for you, but I can't understand it for you.
@@ -14401,7 +14423,7 @@ that range are reduced to fit within the range.

File: gawk.info, Node: Type Functions, Next: I18N Functions, Prev: Bitwise Functions, Up: Built-in
-9.1.7 Getting Type Information
+9.1.8 Getting Type Information
------------------------------
'gawk' provides two functions that let you distinguish the type of a
@@ -14425,6 +14447,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14486,7 +14511,7 @@ arguments from untyped to unassigned.

File: gawk.info, Node: I18N Functions, Prev: Type Functions, Up: Built-in
-9.1.8 String-Translation Functions
+9.1.9 String-Translation Functions
----------------------------------
'gawk' provides facilities for internationalizing 'awk' programs. These
@@ -15165,7 +15190,7 @@ File: gawk.info, Node: Indirect Calls, Next: Functions Summary, Prev: User-de
9.3 Indirect Function Calls
===========================
-This section describes an advanced, 'gawk'-specific extension.
+This minor node describes an advanced, 'gawk'-specific extension.
Often, you may wish to defer the choice of function to call until
runtime. For example, you may have different kinds of records, each of
@@ -20918,6 +20943,7 @@ their own:
* Menu:
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array traversal and
sorting arrays.
* Two-way I/O:: Two-way communications with another process.
@@ -20927,7 +20953,7 @@ their own:
* Advanced Features Summary:: Summary of advanced features.

-File: gawk.info, Node: Nondecimal Data, Next: Array Sorting, Up: Advanced Features
+File: gawk.info, Node: Nondecimal Data, Next: Boolean Typed Values, Up: Advanced Features
12.1 Allowing Nondecimal Input Data
===================================
@@ -20970,9 +20996,53 @@ request it.
This option may disappear in a future version of 'gawk'.

-File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Nondecimal Data, Up: Advanced Features
+File: gawk.info, Node: Boolean Typed Values, Next: Array Sorting, Prev: Nondecimal Data, Up: Advanced Features
+
+12.2 Boolean Typed Values
+=========================
+
+Scalar values in 'awk' are either numbers or strings. 'gawk' also
+supports values of type 'regexp' (*note Strong Regexp Constants::).
+
+ As described in *note Truth Values::, Boolean values in 'awk' don't
+have a separate type: a value counts as "true" if it is nonzero or
+non-null, and as "false" otherwise.
+
+ When interchanging data with languages that do have a real Boolean
+type, using a standard format such as JSON or XML, the lack of a true
+Boolean type in 'awk' is problematic. (See, for example, the 'json'
+extension provided by the 'gawkextlib' project
+(https://sourceforge.net/projects/gawkextlib).)
-12.2 Controlling Array Traversal and Array Sorting
+ It's easy to import Boolean data into 'awk', but then the fact that
+it was originally Boolean is lost. Exporting data is even harder;
+there's no way to indicate that a value is really Boolean.
+
+ To solve this problem, 'gawk' provides a function named 'mkbool()'.
+It takes one argument, which is any 'awk' expression, and it returns a
+value of Boolean type.
+
+ The returned values are normal 'awk' numeric values, with values of
+either one or zero, depending upon the truth value of the original
+expression passed in the call to 'mkbool()'.
+
+ The 'typeof()' function (*note Type Functions::) returns
+'"number|bool"' for these values.
+
+ Thus Boolean-typed values _are_ numbers as far as 'gawk' is
+concerned, except that extension code can treat them as Booleans if
+desired.
+
+ While it would have been possible to add two new built-in variables
+of Boolean type named 'TRUE' and 'FALSE', doing so would undoubtedly
+have broken many existing 'awk' programs. Instead, having a "generator"
+function that creates Boolean values gives flexibility, without breaking
+as much existing code.
+
+
+File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean Typed Values, Up: Advanced Features
+
+12.3 Controlling Array Traversal and Array Sorting
==================================================
'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@ -20991,7 +21061,7 @@ to order the elements during sorting.

File: gawk.info, Node: Controlling Array Traversal, Next: Array Sorting Functions, Up: Array Sorting
-12.2.1 Controlling Array Traversal
+12.3.1 Controlling Array Traversal
----------------------------------
By default, the order in which a 'for (INDX in ARRAY)' loop scans an
@@ -21230,7 +21300,7 @@ character, which cannot be part of an identifier.

File: gawk.info, Node: Array Sorting Functions, Prev: Controlling Array Traversal, Up: Array Sorting
-12.2.2 Sorting Array Values and Indices with 'gawk'
+12.3.2 Sorting Array Values and Indices with 'gawk'
---------------------------------------------------
In most 'awk' implementations, sorting an array requires writing a
@@ -21375,7 +21445,7 @@ POSIX-compatibility mode, and because 'asort()' and 'asorti()' are

File: gawk.info, Node: Two-way I/O, Next: TCP/IP Networking, Prev: Array Sorting, Up: Advanced Features
-12.3 Two-Way Communications with Another Process
+12.4 Two-Way Communications with Another Process
================================================
It is often useful to be able to send data to a separate program for
@@ -21570,7 +21640,7 @@ in Bash.

File: gawk.info, Node: TCP/IP Networking, Next: Profiling, Prev: Two-way I/O, Up: Advanced Features
-12.4 Using 'gawk' for Network Programming
+12.5 Using 'gawk' for Network Programming
=========================================
'EMRED':
@@ -21650,7 +21720,7 @@ complete introduction and discussion, as well as extensive examples.

File: gawk.info, Node: Profiling, Next: Extension Philosophy, Prev: TCP/IP Networking, Up: Advanced Features
-12.5 Profiling Your 'awk' Programs
+12.6 Profiling Your 'awk' Programs
==================================
You may produce execution traces of your 'awk' programs. This is done
@@ -21912,7 +21982,7 @@ source code, it will appear that way in the output.

File: gawk.info, Node: Extension Philosophy, Next: Advanced Features Summary, Prev: Profiling, Up: Advanced Features
-12.6 Builtin Features versus Extensions
+12.7 Builtin Features versus Extensions
=======================================
As this and subsequent major nodes show, 'gawk' has a large number of
@@ -21948,7 +22018,7 @@ or need.

File: gawk.info, Node: Advanced Features Summary, Prev: Extension Philosophy, Up: Advanced Features
-12.7 Summary
+12.8 Summary
============
* The '--non-decimal-data' option causes 'gawk' to treat octal- and
@@ -24305,18 +24375,10 @@ material here:
another number and infinity produce infinity.
"NaN"
- "Not a number."(1) A special value that results from attempting a
- calculation that has no answer as a real number. In such a case,
- programs can either receive a floating-point exception, or get
- 'NaN' back as the result. The IEEE 754 standard recommends that
- systems return 'NaN'. Some examples:
-
- 'sqrt(-1)'
- This makes sense in the range of complex numbers, but not in
- the range of real numbers, so the result is 'NaN'.
-
- 'log(-8)'
- -8 is out of the domain of 'log()', so the result is 'NaN'.
+ "Not a number." A special value that results from attempting a
+ calculation that has no answer as a real number. *Note Strange
+ values::, for more information about infinity and not-a-number
+ values.
"Normalized"
How the significand (see later in this list) is usually stored.
@@ -24375,11 +24437,6 @@ Table 16.3: Basic IEEE format values
NOTE: The precision numbers include the implied leading one that
gives them one extra bit of significand.
- ---------- Footnotes ----------
-
- (1) Thanks to Michael Brennan for this description, which we have
-paraphrased, and for the examples.
-

File: gawk.info, Node: MPFR features, Next: FP Math Caution, Prev: Math Definitions, Up: Arbitrary Precision Arithmetic
@@ -24472,6 +24529,7 @@ be sure of the number of significant decimal places in the final result.
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.

File: gawk.info, Node: Inexact representation, Next: Comparing FP Values, Up: Inexactness of computations
@@ -24536,7 +24594,7 @@ values with a delta, you should be sure to use 'difference < abs(delta)'
in case someone passes in a negative delta value.

-File: gawk.info, Node: Errors accumulate, Prev: Comparing FP Values, Up: Inexactness of computations
+File: gawk.info, Node: Errors accumulate, Next: Strange values, Prev: Comparing FP Values, Up: Inexactness of computations
16.4.1.3 Errors Accumulate
..........................
@@ -24584,6 +24642,64 @@ representations yield an unexpected result:
-| 4

+File: gawk.info, Node: Strange values, Prev: Errors accumulate, Up: Inexactness of computations
+
+16.4.1.4 Floating Point Values They Didn't Talk About In School
+...............................................................
+
+Both IEEE 754 floating-point hardware, and MPFR, support two kinds of
+values that you probably didn't learn about in school. The first is
+"infinity", a special value, that can be either negative or positive,
+and which is either smaller than any other value (negative infinity), or
+larger than any other value (positive infinity). When such values are
+generated, 'gawk' prints them as either '-inf' or '+inf', respectively.
+It accepts those strings as data input and converts them to the proper
+floating-point values internally.
+
+ Infinity values of the same sign compare as equal to each other.
+Otherwise, operations (addition, subtraction, etc.) involving another
+number and infinity produce mathematically reasonable results.
+
+ The second kind of value is "not a number", or NaN for short.(1)
+This is a special value that results from attempting a calculation that
+has no answer as a real number. In such a case, programs can either
+receive a floating-point exception, or get NaN back as the result. The
+IEEE 754 standard recommends that systems return NaN. Some examples:
+
+'sqrt(-1)'
+ This makes sense in the range of complex numbers, but not in the
+ range of real numbers, so the result is NaN.
+
+'log(-8)'
+ -8 is out of the domain of 'log()', so the result is NaN.
+
+ NaN values are strange. In particular, they cannot be compared with
+other floating point values; any such comparison, except for "is not
+equal to", returns false. NaN values are so much unequal to other
+values that even comparing two identical NaN values with '!=' returns
+true!
+
+ NaN values can also be signed, although it depends upon the
+implementation as to which sign you get for any operation that returns a
+NaN. For example, on some systems, 'sqrt(-1)' returns a negative NaN. On
+others, it returns a positive NaN.
+
+ When such values are generated, 'gawk' prints them as either '-nan'
+or '+nan', respectively. Here too, 'gawk' accepts those strings as data
+input and converts them to the proper floating-point values internally.
+
+ If you want to dive more deeply into this topic, you can find test
+programs in C, 'awk' and Python in the directory
+'awklib/eg/test-programs' in the 'gawk' distribution. These programs
+enable comparison among programming languages as to how they handle NaN
+and infinity values.
+
+ ---------- Footnotes ----------
+
+ (1) Thanks to Michael Brennan for this description, which we have
+paraphrased, and for the examples.
+
+
File: gawk.info, Node: Getting Accuracy, Next: Try To Round, Prev: Inexactness of computations, Up: FP Math Caution
16.4.2 Getting the Accuracy You Need
@@ -25530,7 +25646,8 @@ use them.
' AWK_STRNUM,'
' AWK_ARRAY,'
' AWK_SCALAR, /* opaque access to a variable */'
-' AWK_VALUE_COOKIE /* for updating a previously created value */'
+' AWK_VALUE_COOKIE, /* for updating a previously created value */'
+' AWK_BOOL'
'} awk_valtype_t;'
This 'enum' indicates the type of a value. It is used in the
following 'struct'.
@@ -25543,6 +25660,7 @@ use them.
' awk_array_t a;'
' awk_scalar_t scl;'
' awk_value_cookie_t vc;'
+' awk_bool_t b;'
' } u;'
'} awk_value_t;'
An "'awk' value." The 'val_type' member indicates what kind of
@@ -25558,6 +25676,7 @@ use them.
'#define array_cookie u.a'
'#define scalar_cookie u.scl'
'#define value_cookie u.vc'
+'#define bool_value u.b'
Using these macros makes accessing the fields of the 'awk_value_t'
more readable.
@@ -25868,6 +25987,11 @@ code would use them:
a 'char *' value pointing to data previously obtained from
'gawk_malloc()', 'gawk_calloc()', or 'gawk_realloc()'.
+'static inline awk_value_t *'
+'make_bool(awk_bool_t boolval, awk_value_t *result);'
+ This function creates a boolean value in the 'awk_value_t' variable
+ pointed to by 'result'.
+

File: gawk.info, Node: API Ownership of MPFR and GMP Values, Next: Registration Functions, Prev: Constructor Functions, Up: Extension API Description
@@ -26593,16 +26717,17 @@ summarized in *note Table 17.2: table-value-types-returned.
Type of Actual Value
--------------------------------------------------------------------------
- String Strnum Number Regex Array Undefined
--------------------------------------------------------------------------------
- String String String String String false false
- Strnum false Strnum Strnum false false false
- Number Number Number Number false false false
-Type Regex false false false Regex false false
-Requested Array false false false false Array false
- Scalar Scalar Scalar Scalar Scalar false false
- Undefined String Strnum Number Regex Array Undefined
- Value false false false false false false
+ String Strnum Number Regex Bool Array Undefined
+----------------------------------------------------------------------------------------
+ String String String String String String false false
+ Strnum false Strnum Strnum false false false false
+ Number Number Number Number false Number false false
+Type Regex false false false Regex false false false
+Requested Bool false false false false Bool false false
+ Array false false false false false Array false
+ Scalar Scalar Scalar Scalar Scalar Scalar false false
+ Undefined String Strnum Number Regex Bool Array Undefined
+ Value false false false false false false false
cookie
Table 17.2: API value types returned
@@ -33410,8 +33535,8 @@ Localization
Logical Expression
An expression using the operators for logic, AND, OR, and NOT,
- written '&&', '||', and '!' in 'awk'. Often called Boolean
- expressions, after the mathematician who pioneered this kind of
+ written '&&', '||', and '!' in 'awk'. Often called "Boolean
+ expressions", after the mathematician who pioneered this kind of
mathematical logic.
Lvalue
@@ -35568,6 +35693,7 @@ Index
* body, in loops: While Statement. (line 14)
* Boolean expressions: Boolean Ops. (line 6)
* Boolean expressions, as patterns: Expression Patterns. (line 39)
+* boolean function: Boolean Functions. (line 6)
* Bourne shell, quoting rules for: Quoting. (line 18)
* braces ({}), regexp operator: Regexp Operator Details.
(line 118)
@@ -37157,6 +37283,7 @@ Index
* metacharacters, escape sequences for: Escape Sequences. (line 140)
* metacharacters, in regular expressions: Regexp Operators. (line 6)
* minimum precision required by MPFR library: Auto-set. (line 279)
+* mkbool: Boolean Functions. (line 10)
* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* module, definition of: Global Namespace. (line 18)
@@ -38384,608 +38511,611 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345208
-Node: Foreword449650
-Node: Preface51182
-Ref: Preface-Footnote-154041
-Ref: Preface-Footnote-254150
-Ref: Preface-Footnote-354384
-Node: History54526
-Node: Names56878
-Ref: Names-Footnote-157982
-Node: This Manual58129
-Ref: This Manual-Footnote-164768
-Node: Conventions64868
-Node: Manual History67237
-Ref: Manual History-Footnote-170234
-Ref: Manual History-Footnote-270275
-Node: How To Contribute70349
-Node: Acknowledgments71275
-Node: Getting Started76212
-Node: Running gawk78651
-Node: One-shot79841
-Node: Read Terminal81104
-Node: Long83097
-Node: Executable Scripts84610
-Ref: Executable Scripts-Footnote-187243
-Node: Comments87346
-Node: Quoting89830
-Node: DOS Quoting95356
-Node: Sample Data Files97412
-Node: Very Simple100007
-Node: Two Rules106109
-Node: More Complex107994
-Node: Statements/Lines110326
-Ref: Statements/Lines-Footnote-1114810
-Node: Other Features115075
-Node: When116011
-Ref: When-Footnote-1117765
-Node: Intro Summary117830
-Node: Invoking Gawk118714
-Node: Command Line120228
-Node: Options121026
-Ref: Options-Footnote-1138940
-Ref: Options-Footnote-2139171
-Node: Other Arguments139196
-Node: Naming Standard Input143207
-Node: Environment Variables144417
-Node: AWKPATH Variable144975
-Ref: AWKPATH Variable-Footnote-1148387
-Ref: AWKPATH Variable-Footnote-2148421
-Node: AWKLIBPATH Variable148792
-Ref: AWKLIBPATH Variable-Footnote-1150489
-Node: Other Environment Variables150864
-Node: Exit Status154685
-Node: Include Files155362
-Node: Loading Shared Libraries159052
-Node: Obsolete160480
-Node: Undocumented161172
-Node: Invoking Summary161469
-Node: Regexp164310
-Node: Regexp Usage165764
-Node: Escape Sequences167801
-Node: Regexp Operators174042
-Node: Regexp Operator Details174527
-Ref: Regexp Operator Details-Footnote-1181891
-Node: Interval Expressions182038
-Ref: Interval Expressions-Footnote-1183459
-Node: Bracket Expressions183557
-Ref: table-char-classes186033
-Node: Leftmost Longest189359
-Node: Computed Regexps190662
-Node: GNU Regexp Operators194089
-Node: Case-sensitivity197826
-Ref: Case-sensitivity-Footnote-1200692
-Ref: Case-sensitivity-Footnote-2200927
-Node: Regexp Summary201035
-Node: Reading Files202501
-Node: Records204770
-Node: awk split records205845
-Node: gawk split records210545
-Ref: gawk split records-Footnote-1215619
-Node: Fields215656
-Node: Nonconstant Fields218397
-Ref: Nonconstant Fields-Footnote-1220633
-Node: Changing Fields220837
-Node: Field Separators226868
-Node: Default Field Splitting229566
-Node: Regexp Field Splitting230684
-Node: Single Character Fields234361
-Node: Command Line Field Separator235421
-Node: Full Line Fields238639
-Ref: Full Line Fields-Footnote-1240161
-Ref: Full Line Fields-Footnote-2240207
-Node: Field Splitting Summary240308
-Node: Constant Size242382
-Node: Fixed width data243114
-Node: Skipping intervening246581
-Node: Allowing trailing data247379
-Node: Fields with fixed data248416
-Node: Splitting By Content249934
-Ref: Splitting By Content-Footnote-1253717
-Node: More CSV253880
-Node: Testing field creation255472
-Node: Multiple Line257097
-Node: Getline263374
-Node: Plain Getline265843
-Node: Getline/Variable268416
-Node: Getline/File269567
-Node: Getline/Variable/File270955
-Ref: Getline/Variable/File-Footnote-1272560
-Node: Getline/Pipe272648
-Node: Getline/Variable/Pipe275352
-Node: Getline/Coprocess276487
-Node: Getline/Variable/Coprocess277754
-Node: Getline Notes278496
-Node: Getline Summary281293
-Ref: table-getline-variants281717
-Node: Read Timeout282465
-Ref: Read Timeout-Footnote-1286371
-Node: Retrying Input286429
-Node: Command-line directories287628
-Node: Input Summary288534
-Node: Input Exercises291706
-Node: Printing292140
-Node: Print293974
-Node: Print Examples295431
-Node: Output Separators298211
-Node: OFMT300228
-Node: Printf301584
-Node: Basic Printf302369
-Node: Control Letters303943
-Node: Format Modifiers309107
-Node: Printf Examples315122
-Node: Redirection317608
-Node: Special FD324449
-Ref: Special FD-Footnote-1327617
-Node: Special Files327691
-Node: Other Inherited Files328308
-Node: Special Network329309
-Node: Special Caveats330169
-Node: Close Files And Pipes331118
-Ref: table-close-pipe-return-values338025
-Ref: Close Files And Pipes-Footnote-1338838
-Ref: Close Files And Pipes-Footnote-2338986
-Node: Nonfatal339138
-Node: Output Summary341476
-Node: Output Exercises342698
-Node: Expressions343377
-Node: Values344565
-Node: Constants345243
-Node: Scalar Constants345934
-Ref: Scalar Constants-Footnote-1348444
-Node: Nondecimal-numbers348694
-Node: Regexp Constants351695
-Node: Using Constant Regexps352221
-Node: Standard Regexp Constants352843
-Node: Strong Regexp Constants356031
-Node: Variables359043
-Node: Using Variables359700
-Node: Assignment Options361610
-Node: Conversion364081
-Node: Strings And Numbers364605
-Ref: Strings And Numbers-Footnote-1367668
-Node: Locale influences conversions367777
-Ref: table-locale-affects370535
-Node: All Operators371153
-Node: Arithmetic Ops371782
-Node: Concatenation374498
-Ref: Concatenation-Footnote-1377345
-Node: Assignment Ops377452
-Ref: table-assign-ops382443
-Node: Increment Ops383756
-Node: Truth Values and Conditions387216
-Node: Truth Values388290
-Node: Typing and Comparison389338
-Node: Variable Typing390158
-Ref: Variable Typing-Footnote-1396621
-Ref: Variable Typing-Footnote-2396693
-Node: Comparison Operators396770
-Ref: table-relational-ops397189
-Node: POSIX String Comparison400684
-Ref: POSIX String Comparison-Footnote-1402379
-Ref: POSIX String Comparison-Footnote-2402518
-Node: Boolean Ops402602
-Ref: Boolean Ops-Footnote-1407084
-Node: Conditional Exp407176
-Node: Function Calls408912
-Node: Precedence412789
-Node: Locales416448
-Node: Expressions Summary418080
-Node: Patterns and Actions420653
-Node: Pattern Overview421773
-Node: Regexp Patterns423450
-Node: Expression Patterns423992
-Node: Ranges427773
-Node: BEGIN/END430881
-Node: Using BEGIN/END431642
-Ref: Using BEGIN/END-Footnote-1434396
-Node: I/O And BEGIN/END434502
-Node: BEGINFILE/ENDFILE436815
-Node: Empty440046
-Node: Using Shell Variables440363
-Node: Action Overview442637
-Node: Statements444962
-Node: If Statement446810
-Node: While Statement448305
-Node: Do Statement450333
-Node: For Statement451481
-Node: Switch Statement454652
-Node: Break Statement457093
-Node: Continue Statement459185
-Node: Next Statement461012
-Node: Nextfile Statement463395
-Node: Exit Statement466084
-Node: Built-in Variables468487
-Node: User-modified469620
-Node: Auto-set477387
-Ref: Auto-set-Footnote-1494194
-Ref: Auto-set-Footnote-2494400
-Node: ARGC and ARGV494456
-Node: Pattern Action Summary498669
-Node: Arrays501099
-Node: Array Basics502428
-Node: Array Intro503272
-Ref: figure-array-elements505247
-Ref: Array Intro-Footnote-1507951
-Node: Reference to Elements508079
-Node: Assigning Elements510543
-Node: Array Example511034
-Node: Scanning an Array512793
-Node: Controlling Scanning515815
-Ref: Controlling Scanning-Footnote-1522271
-Node: Numeric Array Subscripts522587
-Node: Uninitialized Subscripts524771
-Node: Delete526390
-Ref: Delete-Footnote-1529142
-Node: Multidimensional529199
-Node: Multiscanning532294
-Node: Arrays of Arrays533885
-Node: Arrays Summary538653
-Node: Functions540746
-Node: Built-in541784
-Node: Calling Built-in542865
-Node: Numeric Functions544861
-Ref: Numeric Functions-Footnote-1548889
-Ref: Numeric Functions-Footnote-2549537
-Ref: Numeric Functions-Footnote-3549585
-Node: String Functions549857
-Ref: String Functions-Footnote-1574167
-Ref: String Functions-Footnote-2574295
-Ref: String Functions-Footnote-3574543
-Node: Gory Details574630
-Ref: table-sub-escapes576421
-Ref: table-sub-proposed577940
-Ref: table-posix-sub579303
-Ref: table-gensub-escapes580844
-Ref: Gory Details-Footnote-1581667
-Node: I/O Functions581821
-Ref: table-system-return-values588275
-Ref: I/O Functions-Footnote-1590355
-Ref: I/O Functions-Footnote-2590503
-Node: Time Functions590623
-Ref: Time Functions-Footnote-1601294
-Ref: Time Functions-Footnote-2601362
-Ref: Time Functions-Footnote-3601520
-Ref: Time Functions-Footnote-4601631
-Ref: Time Functions-Footnote-5601743
-Ref: Time Functions-Footnote-6601970
-Node: Bitwise Functions602236
-Ref: table-bitwise-ops602830
-Ref: Bitwise Functions-Footnote-1608893
-Ref: Bitwise Functions-Footnote-2609066
-Node: Type Functions609257
-Node: I18N Functions612120
-Node: User-defined613771
-Node: Definition Syntax614583
-Ref: Definition Syntax-Footnote-1620277
-Node: Function Example620348
-Ref: Function Example-Footnote-1623270
-Node: Function Calling623292
-Node: Calling A Function623880
-Node: Variable Scope624838
-Node: Pass By Value/Reference627832
-Node: Function Caveats630476
-Ref: Function Caveats-Footnote-1632523
-Node: Return Statement632643
-Node: Dynamic Typing635622
-Node: Indirect Calls636552
-Ref: Indirect Calls-Footnote-1646804
-Node: Functions Summary646932
-Node: Library Functions649637
-Ref: Library Functions-Footnote-1653244
-Ref: Library Functions-Footnote-2653387
-Node: Library Names653558
-Ref: Library Names-Footnote-1657225
-Ref: Library Names-Footnote-2657448
-Node: General Functions657534
-Node: Strtonum Function658716
-Node: Assert Function661738
-Node: Round Function665064
-Node: Cliff Random Function666604
-Node: Ordinal Functions667620
-Ref: Ordinal Functions-Footnote-1670683
-Ref: Ordinal Functions-Footnote-2670935
-Node: Join Function671145
-Ref: Join Function-Footnote-1672915
-Node: Getlocaltime Function673115
-Node: Readfile Function676857
-Node: Shell Quoting678834
-Node: Isnumeric Function680262
-Node: Data File Management681650
-Node: Filetrans Function682282
-Node: Rewind Function686378
-Node: File Checking688287
-Ref: File Checking-Footnote-1689621
-Node: Empty Files689822
-Node: Ignoring Assigns691801
-Node: Getopt Function693351
-Ref: Getopt Function-Footnote-1708574
-Node: Passwd Functions708774
-Ref: Passwd Functions-Footnote-1717613
-Node: Group Functions717701
-Ref: Group Functions-Footnote-1725599
-Node: Walking Arrays725806
-Node: Library Functions Summary728814
-Node: Library Exercises730220
-Node: Sample Programs730685
-Node: Running Examples731455
-Node: Clones732183
-Node: Cut Program733407
-Node: Egrep Program743547
-Node: Id Program752548
-Node: Split Program762495
-Ref: Split Program-Footnote-1772388
-Node: Tee Program772561
-Node: Uniq Program775351
-Node: Wc Program782939
-Node: Bytes vs. Characters783326
-Node: Using extensions784874
-Node: wc program785628
-Node: Miscellaneous Programs790493
-Node: Dupword Program791706
-Node: Alarm Program793736
-Node: Translate Program798591
-Ref: Translate Program-Footnote-1803156
-Node: Labels Program803426
-Ref: Labels Program-Footnote-1806777
-Node: Word Sorting806861
-Node: History Sorting810933
-Node: Extract Program813158
-Node: Simple Sed821212
-Node: Igawk Program824286
-Ref: Igawk Program-Footnote-1838617
-Ref: Igawk Program-Footnote-2838819
-Ref: Igawk Program-Footnote-3838941
-Node: Anagram Program839056
-Node: Signature Program842118
-Node: Programs Summary843365
-Node: Programs Exercises844579
-Ref: Programs Exercises-Footnote-1848709
-Node: Advanced Features848795
-Node: Nondecimal Data850862
-Node: Array Sorting852453
-Node: Controlling Array Traversal853153
-Ref: Controlling Array Traversal-Footnote-1861521
-Node: Array Sorting Functions861639
-Ref: Array Sorting Functions-Footnote-1867013
-Node: Two-way I/O867209
-Ref: Two-way I/O-Footnote-1874935
-Ref: Two-way I/O-Footnote-2875122
-Node: TCP/IP Networking875204
-Node: Profiling878322
-Node: Extension Philosophy887631
-Node: Advanced Features Summary889110
-Node: Internationalization891125
-Node: I18N and L10N892799
-Node: Explaining gettext893486
-Ref: Explaining gettext-Footnote-1899378
-Ref: Explaining gettext-Footnote-2899563
-Node: Programmer i18n899728
-Ref: Programmer i18n-Footnote-1904677
-Node: Translator i18n904726
-Node: String Extraction905520
-Ref: String Extraction-Footnote-1906652
-Node: Printf Ordering906738
-Ref: Printf Ordering-Footnote-1909524
-Node: I18N Portability909588
-Ref: I18N Portability-Footnote-1912044
-Node: I18N Example912107
-Ref: I18N Example-Footnote-1915382
-Ref: I18N Example-Footnote-2915455
-Node: Gawk I18N915564
-Node: I18N Summary916213
-Node: Debugger917554
-Node: Debugging918554
-Node: Debugging Concepts918995
-Node: Debugging Terms920804
-Node: Awk Debugging923379
-Ref: Awk Debugging-Footnote-1924324
-Node: Sample Debugging Session924456
-Node: Debugger Invocation924990
-Node: Finding The Bug926376
-Node: List of Debugger Commands932850
-Node: Breakpoint Control934183
-Node: Debugger Execution Control937877
-Node: Viewing And Changing Data941239
-Node: Execution Stack944780
-Node: Debugger Info946417
-Node: Miscellaneous Debugger Commands950488
-Node: Readline Support955550
-Node: Limitations956446
-Node: Debugging Summary959000
-Node: Namespaces960279
-Node: Global Namespace961390
-Node: Qualified Names962788
-Node: Default Namespace963787
-Node: Changing The Namespace964528
-Node: Naming Rules966142
-Node: Internal Name Management967990
-Node: Namespace Example969032
-Node: Namespace And Features971594
-Node: Namespace Summary973029
-Node: Arbitrary Precision Arithmetic974506
-Node: Computer Arithmetic975993
-Ref: table-numeric-ranges979759
-Ref: table-floating-point-ranges980252
-Ref: Computer Arithmetic-Footnote-1980910
-Node: Math Definitions980967
-Ref: table-ieee-formats984283
-Ref: Math Definitions-Footnote-1984886
-Node: MPFR features984991
-Node: FP Math Caution986709
-Ref: FP Math Caution-Footnote-1987781
-Node: Inexactness of computations988150
-Node: Inexact representation989110
-Node: Comparing FP Values990470
-Node: Errors accumulate991711
-Node: Getting Accuracy993144
-Node: Try To Round995854
-Node: Setting precision996753
-Ref: table-predefined-precision-strings997450
-Node: Setting the rounding mode999280
-Ref: table-gawk-rounding-modes999654
-Ref: Setting the rounding mode-Footnote-11003585
-Node: Arbitrary Precision Integers1003764
-Ref: Arbitrary Precision Integers-Footnote-11006939
-Node: Checking for MPFR1007088
-Node: POSIX Floating Point Problems1008562
-Ref: POSIX Floating Point Problems-Footnote-11012847
-Node: Floating point summary1012885
-Node: Dynamic Extensions1015075
-Node: Extension Intro1016628
-Node: Plugin License1017894
-Node: Extension Mechanism Outline1018691
-Ref: figure-load-extension1019130
-Ref: figure-register-new-function1020695
-Ref: figure-call-new-function1021787
-Node: Extension API Description1023849
-Node: Extension API Functions Introduction1025562
-Ref: table-api-std-headers1027398
-Node: General Data Types1031647
-Ref: General Data Types-Footnote-11040277
-Node: Memory Allocation Functions1040576
-Ref: Memory Allocation Functions-Footnote-11045077
-Node: Constructor Functions1045176
-Node: API Ownership of MPFR and GMP Values1048642
-Node: Registration Functions1049955
-Node: Extension Functions1050655
-Node: Exit Callback Functions1055977
-Node: Extension Version String1057227
-Node: Input Parsers1057890
-Node: Output Wrappers1070611
-Node: Two-way processors1075123
-Node: Printing Messages1077388
-Ref: Printing Messages-Footnote-11078559
-Node: Updating ERRNO1078712
-Node: Requesting Values1079451
-Ref: table-value-types-returned1080188
-Node: Accessing Parameters1081124
-Node: Symbol Table Access1082361
-Node: Symbol table by name1082873
-Ref: Symbol table by name-Footnote-11085897
-Node: Symbol table by cookie1086025
-Ref: Symbol table by cookie-Footnote-11090210
-Node: Cached values1090274
-Ref: Cached values-Footnote-11093810
-Node: Array Manipulation1093963
-Ref: Array Manipulation-Footnote-11095054
-Node: Array Data Types1095091
-Ref: Array Data Types-Footnote-11097749
-Node: Array Functions1097841
-Node: Flattening Arrays1102339
-Node: Creating Arrays1109315
-Node: Redirection API1114082
-Node: Extension API Variables1116915
-Node: Extension Versioning1117626
-Ref: gawk-api-version1118055
-Node: Extension GMP/MPFR Versioning1119786
-Node: Extension API Informational Variables1121414
-Node: Extension API Boilerplate1122487
-Node: Changes from API V11126461
-Node: Finding Extensions1128033
-Node: Extension Example1128592
-Node: Internal File Description1129390
-Node: Internal File Ops1133470
-Ref: Internal File Ops-Footnote-11144820
-Node: Using Internal File Ops1144960
-Ref: Using Internal File Ops-Footnote-11147343
-Node: Extension Samples1147617
-Node: Extension Sample File Functions1149146
-Node: Extension Sample Fnmatch1156795
-Node: Extension Sample Fork1158282
-Node: Extension Sample Inplace1159500
-Node: Extension Sample Ord1163126
-Node: Extension Sample Readdir1163962
-Ref: table-readdir-file-types1164851
-Node: Extension Sample Revout1165918
-Node: Extension Sample Rev2way1166507
-Node: Extension Sample Read write array1167247
-Node: Extension Sample Readfile1169189
-Node: Extension Sample Time1170284
-Node: Extension Sample API Tests1172036
-Node: gawkextlib1172528
-Node: Extension summary1175446
-Node: Extension Exercises1179148
-Node: Language History1180390
-Node: V7/SVR3.11182046
-Node: SVR41184198
-Node: POSIX1185632
-Node: BTL1187013
-Node: POSIX/GNU1187742
-Node: Feature History1193520
-Node: Common Extensions1210695
-Node: Ranges and Locales1211978
-Ref: Ranges and Locales-Footnote-11216594
-Ref: Ranges and Locales-Footnote-21216621
-Ref: Ranges and Locales-Footnote-31216856
-Node: Contributors1217079
-Node: History summary1223076
-Node: Installation1224456
-Node: Gawk Distribution1225400
-Node: Getting1225884
-Node: Extracting1226847
-Node: Distribution contents1228485
-Node: Unix Installation1234965
-Node: Quick Installation1235647
-Node: Compiling with MPFR1238128
-Node: Shell Startup Files1238820
-Node: Additional Configuration Options1239909
-Node: Configuration Philosophy1242224
-Node: Non-Unix Installation1244593
-Node: PC Installation1245053
-Node: PC Binary Installation1245891
-Node: PC Compiling1246326
-Node: PC Using1247443
-Node: Cygwin1250996
-Node: MSYS1252220
-Node: VMS Installation1252822
-Node: VMS Compilation1253613
-Ref: VMS Compilation-Footnote-11254842
-Node: VMS Dynamic Extensions1254900
-Node: VMS Installation Details1256585
-Node: VMS Running1258838
-Node: VMS GNV1263117
-Node: VMS Old Gawk1263852
-Node: Bugs1264323
-Node: Bug definition1265203
-Node: Bug address1267707
-Node: Usenet1271095
-Node: Performance bugs1272104
-Node: Asking for help1275025
-Node: Maintainers1276987
-Node: Other Versions1278181
-Node: Installation summary1286033
-Node: Notes1287397
-Node: Compatibility Mode1288191
-Node: Additions1288973
-Node: Accessing The Source1289898
-Node: Adding Code1291335
-Node: New Ports1297554
-Node: Derived Files1301929
-Ref: Derived Files-Footnote-11307589
-Ref: Derived Files-Footnote-21307624
-Ref: Derived Files-Footnote-31308222
-Node: Future Extensions1308336
-Node: Implementation Limitations1308994
-Node: Extension Design1310204
-Node: Old Extension Problems1311348
-Ref: Old Extension Problems-Footnote-11312866
-Node: Extension New Mechanism Goals1312923
-Ref: Extension New Mechanism Goals-Footnote-11316287
-Node: Extension Other Design Decisions1316476
-Node: Extension Future Growth1318589
-Node: Notes summary1319195
-Node: Basic Concepts1320353
-Node: Basic High Level1321034
-Ref: figure-general-flow1321316
-Ref: figure-process-flow1322001
-Ref: Basic High Level-Footnote-11325302
-Node: Basic Data Typing1325487
-Node: Glossary1328815
-Node: Copying1360700
-Node: GNU Free Documentation License1398243
-Node: Index1423363
+Node: Foreword345479
+Node: Foreword449921
+Node: Preface51453
+Ref: Preface-Footnote-154312
+Ref: Preface-Footnote-254421
+Ref: Preface-Footnote-354655
+Node: History54797
+Node: Names57149
+Ref: Names-Footnote-158253
+Node: This Manual58400
+Ref: This Manual-Footnote-165039
+Node: Conventions65139
+Node: Manual History67508
+Ref: Manual History-Footnote-170505
+Ref: Manual History-Footnote-270546
+Node: How To Contribute70620
+Node: Acknowledgments71546
+Node: Getting Started76483
+Node: Running gawk78922
+Node: One-shot80112
+Node: Read Terminal81375
+Node: Long83368
+Node: Executable Scripts84881
+Ref: Executable Scripts-Footnote-187514
+Node: Comments87617
+Node: Quoting90101
+Node: DOS Quoting95627
+Node: Sample Data Files97683
+Node: Very Simple100278
+Node: Two Rules106380
+Node: More Complex108265
+Node: Statements/Lines110597
+Ref: Statements/Lines-Footnote-1115081
+Node: Other Features115346
+Node: When116282
+Ref: When-Footnote-1118036
+Node: Intro Summary118101
+Node: Invoking Gawk118985
+Node: Command Line120499
+Node: Options121297
+Ref: Options-Footnote-1139211
+Ref: Options-Footnote-2139442
+Node: Other Arguments139467
+Node: Naming Standard Input143478
+Node: Environment Variables144688
+Node: AWKPATH Variable145246
+Ref: AWKPATH Variable-Footnote-1148658
+Ref: AWKPATH Variable-Footnote-2148692
+Node: AWKLIBPATH Variable149063
+Ref: AWKLIBPATH Variable-Footnote-1150760
+Node: Other Environment Variables151135
+Node: Exit Status155087
+Node: Include Files155764
+Node: Loading Shared Libraries159454
+Node: Obsolete160882
+Node: Undocumented161574
+Node: Invoking Summary161871
+Node: Regexp164712
+Node: Regexp Usage166166
+Node: Escape Sequences168203
+Node: Regexp Operators174444
+Node: Regexp Operator Details174929
+Ref: Regexp Operator Details-Footnote-1182293
+Node: Interval Expressions182440
+Ref: Interval Expressions-Footnote-1183861
+Node: Bracket Expressions183959
+Ref: table-char-classes186435
+Node: Leftmost Longest189761
+Node: Computed Regexps191064
+Node: GNU Regexp Operators194491
+Node: Case-sensitivity198228
+Ref: Case-sensitivity-Footnote-1201094
+Ref: Case-sensitivity-Footnote-2201329
+Node: Regexp Summary201437
+Node: Reading Files202903
+Node: Records205172
+Node: awk split records206247
+Node: gawk split records210947
+Ref: gawk split records-Footnote-1216021
+Node: Fields216058
+Node: Nonconstant Fields218799
+Ref: Nonconstant Fields-Footnote-1221035
+Node: Changing Fields221239
+Node: Field Separators227270
+Node: Default Field Splitting229968
+Node: Regexp Field Splitting231086
+Node: Single Character Fields234763
+Node: Command Line Field Separator235823
+Node: Full Line Fields239041
+Ref: Full Line Fields-Footnote-1240563
+Ref: Full Line Fields-Footnote-2240609
+Node: Field Splitting Summary240710
+Node: Constant Size242784
+Node: Fixed width data243516
+Node: Skipping intervening246983
+Node: Allowing trailing data247781
+Node: Fields with fixed data248818
+Node: Splitting By Content250336
+Ref: Splitting By Content-Footnote-1254119
+Node: More CSV254282
+Node: Testing field creation255874
+Node: Multiple Line257499
+Node: Getline263776
+Node: Plain Getline266245
+Node: Getline/Variable268818
+Node: Getline/File269969
+Node: Getline/Variable/File271357
+Ref: Getline/Variable/File-Footnote-1272962
+Node: Getline/Pipe273050
+Node: Getline/Variable/Pipe275754
+Node: Getline/Coprocess276889
+Node: Getline/Variable/Coprocess278156
+Node: Getline Notes278898
+Node: Getline Summary281695
+Ref: table-getline-variants282119
+Node: Read Timeout282867
+Ref: Read Timeout-Footnote-1286773
+Node: Retrying Input286831
+Node: Command-line directories288030
+Node: Input Summary288936
+Node: Input Exercises292108
+Node: Printing292542
+Node: Print294376
+Node: Print Examples295833
+Node: Output Separators298613
+Node: OFMT300630
+Node: Printf301986
+Node: Basic Printf302771
+Node: Control Letters304345
+Node: Format Modifiers309507
+Node: Printf Examples315522
+Node: Redirection318008
+Node: Special FD324849
+Ref: Special FD-Footnote-1328017
+Node: Special Files328091
+Node: Other Inherited Files328708
+Node: Special Network329709
+Node: Special Caveats330569
+Node: Close Files And Pipes331518
+Ref: table-close-pipe-return-values338425
+Ref: Close Files And Pipes-Footnote-1339238
+Ref: Close Files And Pipes-Footnote-2339386
+Node: Nonfatal339538
+Node: Output Summary341876
+Node: Output Exercises343098
+Node: Expressions343777
+Node: Values344965
+Node: Constants345643
+Node: Scalar Constants346334
+Ref: Scalar Constants-Footnote-1348844
+Node: Nondecimal-numbers349094
+Node: Regexp Constants352095
+Node: Using Constant Regexps352621
+Node: Standard Regexp Constants353243
+Node: Strong Regexp Constants356431
+Node: Variables359443
+Node: Using Variables360100
+Node: Assignment Options362010
+Node: Conversion364481
+Node: Strings And Numbers365005
+Ref: Strings And Numbers-Footnote-1368068
+Node: Locale influences conversions368177
+Ref: table-locale-affects370935
+Node: All Operators371553
+Node: Arithmetic Ops372182
+Node: Concatenation374898
+Ref: Concatenation-Footnote-1377745
+Node: Assignment Ops377852
+Ref: table-assign-ops382843
+Node: Increment Ops384156
+Node: Truth Values and Conditions387616
+Node: Truth Values388690
+Node: Typing and Comparison389738
+Node: Variable Typing390558
+Ref: Variable Typing-Footnote-1397021
+Ref: Variable Typing-Footnote-2397093
+Node: Comparison Operators397170
+Ref: table-relational-ops397589
+Node: POSIX String Comparison401084
+Ref: POSIX String Comparison-Footnote-1402779
+Ref: POSIX String Comparison-Footnote-2402918
+Node: Boolean Ops403002
+Ref: Boolean Ops-Footnote-1407484
+Node: Conditional Exp407576
+Node: Function Calls409312
+Node: Precedence413189
+Node: Locales416848
+Node: Expressions Summary418480
+Node: Patterns and Actions421053
+Node: Pattern Overview422173
+Node: Regexp Patterns423850
+Node: Expression Patterns424392
+Node: Ranges428173
+Node: BEGIN/END431281
+Node: Using BEGIN/END432042
+Ref: Using BEGIN/END-Footnote-1434796
+Node: I/O And BEGIN/END434902
+Node: BEGINFILE/ENDFILE437215
+Node: Empty440446
+Node: Using Shell Variables440763
+Node: Action Overview443037
+Node: Statements445362
+Node: If Statement447210
+Node: While Statement448705
+Node: Do Statement450733
+Node: For Statement451881
+Node: Switch Statement455052
+Node: Break Statement457493
+Node: Continue Statement459585
+Node: Next Statement461412
+Node: Nextfile Statement463795
+Node: Exit Statement466484
+Node: Built-in Variables468887
+Node: User-modified470020
+Node: Auto-set477787
+Ref: Auto-set-Footnote-1494594
+Ref: Auto-set-Footnote-2494800
+Node: ARGC and ARGV494856
+Node: Pattern Action Summary499069
+Node: Arrays501499
+Node: Array Basics502828
+Node: Array Intro503672
+Ref: figure-array-elements505647
+Ref: Array Intro-Footnote-1508351
+Node: Reference to Elements508479
+Node: Assigning Elements510943
+Node: Array Example511434
+Node: Scanning an Array513193
+Node: Controlling Scanning516215
+Ref: Controlling Scanning-Footnote-1522671
+Node: Numeric Array Subscripts522987
+Node: Uninitialized Subscripts525171
+Node: Delete526790
+Ref: Delete-Footnote-1529542
+Node: Multidimensional529599
+Node: Multiscanning532694
+Node: Arrays of Arrays534285
+Node: Arrays Summary539053
+Node: Functions541146
+Node: Built-in542184
+Node: Calling Built-in543337
+Node: Boolean Functions545333
+Node: Numeric Functions545887
+Ref: Numeric Functions-Footnote-1549914
+Ref: Numeric Functions-Footnote-2550562
+Ref: Numeric Functions-Footnote-3550610
+Node: String Functions550882
+Ref: String Functions-Footnote-1575192
+Ref: String Functions-Footnote-2575320
+Ref: String Functions-Footnote-3575568
+Node: Gory Details575655
+Ref: table-sub-escapes577446
+Ref: table-sub-proposed578965
+Ref: table-posix-sub580328
+Ref: table-gensub-escapes581869
+Ref: Gory Details-Footnote-1582692
+Node: I/O Functions582846
+Ref: table-system-return-values589300
+Ref: I/O Functions-Footnote-1591380
+Ref: I/O Functions-Footnote-2591528
+Node: Time Functions591648
+Ref: Time Functions-Footnote-1602319
+Ref: Time Functions-Footnote-2602387
+Ref: Time Functions-Footnote-3602545
+Ref: Time Functions-Footnote-4602656
+Ref: Time Functions-Footnote-5602768
+Ref: Time Functions-Footnote-6602995
+Node: Bitwise Functions603261
+Ref: table-bitwise-ops603855
+Ref: Bitwise Functions-Footnote-1609918
+Ref: Bitwise Functions-Footnote-2610091
+Node: Type Functions610282
+Node: I18N Functions613236
+Node: User-defined614887
+Node: Definition Syntax615699
+Ref: Definition Syntax-Footnote-1621393
+Node: Function Example621464
+Ref: Function Example-Footnote-1624386
+Node: Function Calling624408
+Node: Calling A Function624996
+Node: Variable Scope625954
+Node: Pass By Value/Reference628948
+Node: Function Caveats631592
+Ref: Function Caveats-Footnote-1633639
+Node: Return Statement633759
+Node: Dynamic Typing636738
+Node: Indirect Calls637668
+Ref: Indirect Calls-Footnote-1647923
+Node: Functions Summary648051
+Node: Library Functions650756
+Ref: Library Functions-Footnote-1654363
+Ref: Library Functions-Footnote-2654506
+Node: Library Names654677
+Ref: Library Names-Footnote-1658344
+Ref: Library Names-Footnote-2658567
+Node: General Functions658653
+Node: Strtonum Function659835
+Node: Assert Function662857
+Node: Round Function666183
+Node: Cliff Random Function667723
+Node: Ordinal Functions668739
+Ref: Ordinal Functions-Footnote-1671802
+Ref: Ordinal Functions-Footnote-2672054
+Node: Join Function672264
+Ref: Join Function-Footnote-1674034
+Node: Getlocaltime Function674234
+Node: Readfile Function677976
+Node: Shell Quoting679953
+Node: Isnumeric Function681381
+Node: Data File Management682769
+Node: Filetrans Function683401
+Node: Rewind Function687497
+Node: File Checking689406
+Ref: File Checking-Footnote-1690740
+Node: Empty Files690941
+Node: Ignoring Assigns692920
+Node: Getopt Function694470
+Ref: Getopt Function-Footnote-1709693
+Node: Passwd Functions709893
+Ref: Passwd Functions-Footnote-1718732
+Node: Group Functions718820
+Ref: Group Functions-Footnote-1726718
+Node: Walking Arrays726925
+Node: Library Functions Summary729933
+Node: Library Exercises731339
+Node: Sample Programs731804
+Node: Running Examples732574
+Node: Clones733302
+Node: Cut Program734526
+Node: Egrep Program744666
+Node: Id Program753667
+Node: Split Program763614
+Ref: Split Program-Footnote-1773507
+Node: Tee Program773680
+Node: Uniq Program776470
+Node: Wc Program784058
+Node: Bytes vs. Characters784445
+Node: Using extensions785993
+Node: wc program786747
+Node: Miscellaneous Programs791612
+Node: Dupword Program792825
+Node: Alarm Program794855
+Node: Translate Program799710
+Ref: Translate Program-Footnote-1804275
+Node: Labels Program804545
+Ref: Labels Program-Footnote-1807896
+Node: Word Sorting807980
+Node: History Sorting812052
+Node: Extract Program814277
+Node: Simple Sed822331
+Node: Igawk Program825405
+Ref: Igawk Program-Footnote-1839736
+Ref: Igawk Program-Footnote-2839938
+Ref: Igawk Program-Footnote-3840060
+Node: Anagram Program840175
+Node: Signature Program843237
+Node: Programs Summary844484
+Node: Programs Exercises845698
+Ref: Programs Exercises-Footnote-1849828
+Node: Advanced Features849914
+Node: Nondecimal Data852045
+Node: Boolean Typed Values853643
+Node: Array Sorting855524
+Node: Controlling Array Traversal856229
+Ref: Controlling Array Traversal-Footnote-1864597
+Node: Array Sorting Functions864715
+Ref: Array Sorting Functions-Footnote-1870089
+Node: Two-way I/O870285
+Ref: Two-way I/O-Footnote-1878011
+Ref: Two-way I/O-Footnote-2878198
+Node: TCP/IP Networking878280
+Node: Profiling881398
+Node: Extension Philosophy890707
+Node: Advanced Features Summary892186
+Node: Internationalization894201
+Node: I18N and L10N895875
+Node: Explaining gettext896562
+Ref: Explaining gettext-Footnote-1902454
+Ref: Explaining gettext-Footnote-2902639
+Node: Programmer i18n902804
+Ref: Programmer i18n-Footnote-1907753
+Node: Translator i18n907802
+Node: String Extraction908596
+Ref: String Extraction-Footnote-1909728
+Node: Printf Ordering909814
+Ref: Printf Ordering-Footnote-1912600
+Node: I18N Portability912664
+Ref: I18N Portability-Footnote-1915120
+Node: I18N Example915183
+Ref: I18N Example-Footnote-1918458
+Ref: I18N Example-Footnote-2918531
+Node: Gawk I18N918640
+Node: I18N Summary919289
+Node: Debugger920630
+Node: Debugging921630
+Node: Debugging Concepts922071
+Node: Debugging Terms923880
+Node: Awk Debugging926455
+Ref: Awk Debugging-Footnote-1927400
+Node: Sample Debugging Session927532
+Node: Debugger Invocation928066
+Node: Finding The Bug929452
+Node: List of Debugger Commands935926
+Node: Breakpoint Control937259
+Node: Debugger Execution Control940953
+Node: Viewing And Changing Data944315
+Node: Execution Stack947856
+Node: Debugger Info949493
+Node: Miscellaneous Debugger Commands953564
+Node: Readline Support958626
+Node: Limitations959522
+Node: Debugging Summary962076
+Node: Namespaces963355
+Node: Global Namespace964466
+Node: Qualified Names965864
+Node: Default Namespace966863
+Node: Changing The Namespace967604
+Node: Naming Rules969218
+Node: Internal Name Management971066
+Node: Namespace Example972108
+Node: Namespace And Features974670
+Node: Namespace Summary976105
+Node: Arbitrary Precision Arithmetic977582
+Node: Computer Arithmetic979069
+Ref: table-numeric-ranges982835
+Ref: table-floating-point-ranges983328
+Ref: Computer Arithmetic-Footnote-1983986
+Node: Math Definitions984043
+Ref: table-ieee-formats987019
+Node: MPFR features987586
+Node: FP Math Caution989304
+Ref: FP Math Caution-Footnote-1990376
+Node: Inexactness of computations990745
+Node: Inexact representation991776
+Node: Comparing FP Values993136
+Node: Errors accumulate994377
+Node: Strange values995833
+Ref: Strange values-Footnote-1998421
+Node: Getting Accuracy998526
+Node: Try To Round1001236
+Node: Setting precision1002135
+Ref: table-predefined-precision-strings1002832
+Node: Setting the rounding mode1004662
+Ref: table-gawk-rounding-modes1005036
+Ref: Setting the rounding mode-Footnote-11008967
+Node: Arbitrary Precision Integers1009146
+Ref: Arbitrary Precision Integers-Footnote-11012321
+Node: Checking for MPFR1012470
+Node: POSIX Floating Point Problems1013944
+Ref: POSIX Floating Point Problems-Footnote-11018229
+Node: Floating point summary1018267
+Node: Dynamic Extensions1020457
+Node: Extension Intro1022010
+Node: Plugin License1023276
+Node: Extension Mechanism Outline1024073
+Ref: figure-load-extension1024512
+Ref: figure-register-new-function1026077
+Ref: figure-call-new-function1027169
+Node: Extension API Description1029231
+Node: Extension API Functions Introduction1030944
+Ref: table-api-std-headers1032780
+Node: General Data Types1037029
+Ref: General Data Types-Footnote-11045735
+Node: Memory Allocation Functions1046034
+Ref: Memory Allocation Functions-Footnote-11050535
+Node: Constructor Functions1050634
+Node: API Ownership of MPFR and GMP Values1054287
+Node: Registration Functions1055600
+Node: Extension Functions1056300
+Node: Exit Callback Functions1061622
+Node: Extension Version String1062872
+Node: Input Parsers1063535
+Node: Output Wrappers1076256
+Node: Two-way processors1080768
+Node: Printing Messages1083033
+Ref: Printing Messages-Footnote-11084204
+Node: Updating ERRNO1084357
+Node: Requesting Values1085096
+Ref: table-value-types-returned1085833
+Node: Accessing Parameters1086941
+Node: Symbol Table Access1088178
+Node: Symbol table by name1088690
+Ref: Symbol table by name-Footnote-11091714
+Node: Symbol table by cookie1091842
+Ref: Symbol table by cookie-Footnote-11096027
+Node: Cached values1096091
+Ref: Cached values-Footnote-11099627
+Node: Array Manipulation1099780
+Ref: Array Manipulation-Footnote-11100871
+Node: Array Data Types1100908
+Ref: Array Data Types-Footnote-11103566
+Node: Array Functions1103658
+Node: Flattening Arrays1108156
+Node: Creating Arrays1115132
+Node: Redirection API1119899
+Node: Extension API Variables1122732
+Node: Extension Versioning1123443
+Ref: gawk-api-version1123872
+Node: Extension GMP/MPFR Versioning1125603
+Node: Extension API Informational Variables1127231
+Node: Extension API Boilerplate1128304
+Node: Changes from API V11132278
+Node: Finding Extensions1133850
+Node: Extension Example1134409
+Node: Internal File Description1135207
+Node: Internal File Ops1139287
+Ref: Internal File Ops-Footnote-11150637
+Node: Using Internal File Ops1150777
+Ref: Using Internal File Ops-Footnote-11153160
+Node: Extension Samples1153434
+Node: Extension Sample File Functions1154963
+Node: Extension Sample Fnmatch1162612
+Node: Extension Sample Fork1164099
+Node: Extension Sample Inplace1165317
+Node: Extension Sample Ord1168943
+Node: Extension Sample Readdir1169779
+Ref: table-readdir-file-types1170668
+Node: Extension Sample Revout1171735
+Node: Extension Sample Rev2way1172324
+Node: Extension Sample Read write array1173064
+Node: Extension Sample Readfile1175006
+Node: Extension Sample Time1176101
+Node: Extension Sample API Tests1177853
+Node: gawkextlib1178345
+Node: Extension summary1181263
+Node: Extension Exercises1184965
+Node: Language History1186207
+Node: V7/SVR3.11187863
+Node: SVR41190015
+Node: POSIX1191449
+Node: BTL1192830
+Node: POSIX/GNU1193559
+Node: Feature History1199337
+Node: Common Extensions1216512
+Node: Ranges and Locales1217795
+Ref: Ranges and Locales-Footnote-11222411
+Ref: Ranges and Locales-Footnote-21222438
+Ref: Ranges and Locales-Footnote-31222673
+Node: Contributors1222896
+Node: History summary1228893
+Node: Installation1230273
+Node: Gawk Distribution1231217
+Node: Getting1231701
+Node: Extracting1232664
+Node: Distribution contents1234302
+Node: Unix Installation1240782
+Node: Quick Installation1241464
+Node: Compiling with MPFR1243945
+Node: Shell Startup Files1244637
+Node: Additional Configuration Options1245726
+Node: Configuration Philosophy1248041
+Node: Non-Unix Installation1250410
+Node: PC Installation1250870
+Node: PC Binary Installation1251708
+Node: PC Compiling1252143
+Node: PC Using1253260
+Node: Cygwin1256813
+Node: MSYS1258037
+Node: VMS Installation1258639
+Node: VMS Compilation1259430
+Ref: VMS Compilation-Footnote-11260659
+Node: VMS Dynamic Extensions1260717
+Node: VMS Installation Details1262402
+Node: VMS Running1264655
+Node: VMS GNV1268934
+Node: VMS Old Gawk1269669
+Node: Bugs1270140
+Node: Bug definition1271020
+Node: Bug address1273524
+Node: Usenet1276912
+Node: Performance bugs1277921
+Node: Asking for help1280842
+Node: Maintainers1282804
+Node: Other Versions1283998
+Node: Installation summary1291850
+Node: Notes1293214
+Node: Compatibility Mode1294008
+Node: Additions1294790
+Node: Accessing The Source1295715
+Node: Adding Code1297152
+Node: New Ports1303371
+Node: Derived Files1307746
+Ref: Derived Files-Footnote-11313406
+Ref: Derived Files-Footnote-21313441
+Ref: Derived Files-Footnote-31314039
+Node: Future Extensions1314153
+Node: Implementation Limitations1314811
+Node: Extension Design1316021
+Node: Old Extension Problems1317165
+Ref: Old Extension Problems-Footnote-11318683
+Node: Extension New Mechanism Goals1318740
+Ref: Extension New Mechanism Goals-Footnote-11322104
+Node: Extension Other Design Decisions1322293
+Node: Extension Future Growth1324406
+Node: Notes summary1325012
+Node: Basic Concepts1326170
+Node: Basic High Level1326851
+Ref: figure-general-flow1327133
+Ref: figure-process-flow1327818
+Ref: Basic High Level-Footnote-11331119
+Node: Basic Data Typing1331304
+Node: Glossary1334632
+Node: Copying1366519
+Node: GNU Free Documentation License1404062
+Node: Index1429182

End Tag Table