aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1444
1 files changed, 787 insertions, 657 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index b1500a78..cc34390f 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.
@@ -3223,7 +3227,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
@@ -6974,8 +6980,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
@@ -12783,6 +12789,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
@@ -12795,7 +12802,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
--------------------------------
@@ -12839,9 +12846,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
@@ -12867,7 +12889,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()'
@@ -12965,7 +12987,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
@@ -13537,7 +13559,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.
@@ -13683,7 +13705,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
@@ -13900,7 +13922,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
@@ -14217,7 +14239,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.
@@ -14399,7 +14421,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
@@ -14423,6 +14445,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14484,7 +14509,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
@@ -15163,7 +15188,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
@@ -20916,6 +20941,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.
@@ -20925,7 +20951,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
===================================
@@ -20968,9 +20994,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
@@ -20989,7 +21059,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
@@ -21228,7 +21298,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
@@ -21373,7 +21443,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
@@ -21568,7 +21638,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':
@@ -21648,7 +21718,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
@@ -21910,7 +21980,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
@@ -21946,7 +22016,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
@@ -24303,18 +24373,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.
@@ -24373,11 +24435,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
@@ -24470,6 +24527,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
@@ -24534,7 +24592,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
..........................
@@ -24582,6 +24640,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
@@ -25528,7 +25644,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'.
@@ -25541,6 +25658,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
@@ -25556,6 +25674,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.
@@ -25866,6 +25985,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
@@ -26591,16 +26715,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
@@ -33393,8 +33518,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
@@ -35551,6 +35676,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)
@@ -37140,6 +37266,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)
@@ -38367,607 +38494,610 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345084
-Node: Foreword449526
-Node: Preface51058
-Ref: Preface-Footnote-153917
-Ref: Preface-Footnote-254026
-Ref: Preface-Footnote-354260
-Node: History54402
-Node: Names56754
-Ref: Names-Footnote-157858
-Node: This Manual58005
-Ref: This Manual-Footnote-164644
-Node: Conventions64744
-Node: Manual History67113
-Ref: Manual History-Footnote-170110
-Ref: Manual History-Footnote-270151
-Node: How To Contribute70225
-Node: Acknowledgments71151
-Node: Getting Started76088
-Node: Running gawk78527
-Node: One-shot79717
-Node: Read Terminal80980
-Node: Long82973
-Node: Executable Scripts84486
-Ref: Executable Scripts-Footnote-187119
-Node: Comments87222
-Node: Quoting89706
-Node: DOS Quoting95232
-Node: Sample Data Files97288
-Node: Very Simple99883
-Node: Two Rules105985
-Node: More Complex107870
-Node: Statements/Lines110202
-Ref: Statements/Lines-Footnote-1114686
-Node: Other Features114951
-Node: When115887
-Ref: When-Footnote-1117641
-Node: Intro Summary117706
-Node: Invoking Gawk118590
-Node: Command Line120104
-Node: Options120902
-Ref: Options-Footnote-1138816
-Ref: Options-Footnote-2139047
-Node: Other Arguments139072
-Node: Naming Standard Input143083
-Node: Environment Variables144293
-Node: AWKPATH Variable144851
-Ref: AWKPATH Variable-Footnote-1148263
-Ref: AWKPATH Variable-Footnote-2148297
-Node: AWKLIBPATH Variable148668
-Ref: AWKLIBPATH Variable-Footnote-1150365
-Node: Other Environment Variables150740
-Node: Exit Status154561
-Node: Include Files155238
-Node: Loading Shared Libraries158928
-Node: Obsolete160356
-Node: Undocumented161048
-Node: Invoking Summary161345
-Node: Regexp164186
-Node: Regexp Usage165640
-Node: Escape Sequences167677
-Node: Regexp Operators173918
-Node: Regexp Operator Details174403
-Ref: Regexp Operator Details-Footnote-1181767
-Node: Interval Expressions181914
-Ref: Interval Expressions-Footnote-1183335
-Node: Bracket Expressions183433
-Ref: table-char-classes185909
-Node: Leftmost Longest189235
-Node: Computed Regexps190538
-Node: GNU Regexp Operators193965
-Node: Case-sensitivity197702
-Ref: Case-sensitivity-Footnote-1200568
-Ref: Case-sensitivity-Footnote-2200803
-Node: Regexp Summary200911
-Node: Reading Files202377
-Node: Records204646
-Node: awk split records205721
-Node: gawk split records210421
-Ref: gawk split records-Footnote-1215495
-Node: Fields215532
-Node: Nonconstant Fields218273
-Ref: Nonconstant Fields-Footnote-1220509
-Node: Changing Fields220713
-Node: Field Separators226744
-Node: Default Field Splitting229442
-Node: Regexp Field Splitting230560
-Node: Single Character Fields234237
-Node: Command Line Field Separator235297
-Node: Full Line Fields238515
-Ref: Full Line Fields-Footnote-1240037
-Ref: Full Line Fields-Footnote-2240083
-Node: Field Splitting Summary240184
-Node: Constant Size242258
-Node: Fixed width data242990
-Node: Skipping intervening246457
-Node: Allowing trailing data247255
-Node: Fields with fixed data248292
-Node: Splitting By Content249810
-Ref: Splitting By Content-Footnote-1253593
-Node: More CSV253756
-Node: Testing field creation255348
-Node: Multiple Line256973
-Node: Getline263250
-Node: Plain Getline265719
-Node: Getline/Variable268292
-Node: Getline/File269443
-Node: Getline/Variable/File270831
-Ref: Getline/Variable/File-Footnote-1272436
-Node: Getline/Pipe272524
-Node: Getline/Variable/Pipe275228
-Node: Getline/Coprocess276363
-Node: Getline/Variable/Coprocess277630
-Node: Getline Notes278372
-Node: Getline Summary281169
-Ref: table-getline-variants281593
-Node: Read Timeout282341
-Ref: Read Timeout-Footnote-1286247
-Node: Retrying Input286305
-Node: Command-line directories287504
-Node: Input Summary288410
-Node: Input Exercises291582
-Node: Printing292016
-Node: Print293850
-Node: Print Examples295307
-Node: Output Separators298087
-Node: OFMT300104
-Node: Printf301460
-Node: Basic Printf302245
-Node: Control Letters303819
-Node: Format Modifiers308983
-Node: Printf Examples314998
-Node: Redirection317484
-Node: Special FD324325
-Ref: Special FD-Footnote-1327493
-Node: Special Files327567
-Node: Other Inherited Files328184
-Node: Special Network329185
-Node: Special Caveats330045
-Node: Close Files And Pipes330994
-Ref: table-close-pipe-return-values337901
-Ref: Close Files And Pipes-Footnote-1338714
-Ref: Close Files And Pipes-Footnote-2338862
-Node: Nonfatal339014
-Node: Output Summary341352
-Node: Output Exercises342574
-Node: Expressions343253
-Node: Values344441
-Node: Constants345119
-Node: Scalar Constants345810
-Ref: Scalar Constants-Footnote-1348320
-Node: Nondecimal-numbers348570
-Node: Regexp Constants351571
-Node: Using Constant Regexps352097
-Node: Standard Regexp Constants352719
-Node: Strong Regexp Constants355907
-Node: Variables358919
-Node: Using Variables359576
-Node: Assignment Options361486
-Node: Conversion363957
-Node: Strings And Numbers364481
-Ref: Strings And Numbers-Footnote-1367544
-Node: Locale influences conversions367653
-Ref: table-locale-affects370411
-Node: All Operators371029
-Node: Arithmetic Ops371658
-Node: Concatenation374374
-Ref: Concatenation-Footnote-1377221
-Node: Assignment Ops377328
-Ref: table-assign-ops382319
-Node: Increment Ops383632
-Node: Truth Values and Conditions387092
-Node: Truth Values388166
-Node: Typing and Comparison389214
-Node: Variable Typing390034
-Ref: Variable Typing-Footnote-1396497
-Ref: Variable Typing-Footnote-2396569
-Node: Comparison Operators396646
-Ref: table-relational-ops397065
-Node: POSIX String Comparison400560
-Ref: POSIX String Comparison-Footnote-1402255
-Ref: POSIX String Comparison-Footnote-2402394
-Node: Boolean Ops402478
-Ref: Boolean Ops-Footnote-1406960
-Node: Conditional Exp407052
-Node: Function Calls408788
-Node: Precedence412665
-Node: Locales416324
-Node: Expressions Summary417956
-Node: Patterns and Actions420529
-Node: Pattern Overview421649
-Node: Regexp Patterns423326
-Node: Expression Patterns423868
-Node: Ranges427649
-Node: BEGIN/END430757
-Node: Using BEGIN/END431518
-Ref: Using BEGIN/END-Footnote-1434272
-Node: I/O And BEGIN/END434378
-Node: BEGINFILE/ENDFILE436691
-Node: Empty439922
-Node: Using Shell Variables440239
-Node: Action Overview442513
-Node: Statements444838
-Node: If Statement446686
-Node: While Statement448181
-Node: Do Statement450209
-Node: For Statement451357
-Node: Switch Statement454528
-Node: Break Statement456969
-Node: Continue Statement459061
-Node: Next Statement460888
-Node: Nextfile Statement463271
-Node: Exit Statement465960
-Node: Built-in Variables468363
-Node: User-modified469496
-Node: Auto-set477263
-Ref: Auto-set-Footnote-1494070
-Ref: Auto-set-Footnote-2494276
-Node: ARGC and ARGV494332
-Node: Pattern Action Summary498545
-Node: Arrays500975
-Node: Array Basics502304
-Node: Array Intro503148
-Ref: figure-array-elements505123
-Ref: Array Intro-Footnote-1507827
-Node: Reference to Elements507955
-Node: Assigning Elements510419
-Node: Array Example510910
-Node: Scanning an Array512669
-Node: Controlling Scanning515691
-Ref: Controlling Scanning-Footnote-1522147
-Node: Numeric Array Subscripts522463
-Node: Uninitialized Subscripts524647
-Node: Delete526266
-Ref: Delete-Footnote-1529018
-Node: Multidimensional529075
-Node: Multiscanning532170
-Node: Arrays of Arrays533761
-Node: Arrays Summary538529
-Node: Functions540622
-Node: Built-in541660
-Node: Calling Built-in542741
-Node: Numeric Functions544737
-Ref: Numeric Functions-Footnote-1548765
-Ref: Numeric Functions-Footnote-2549413
-Ref: Numeric Functions-Footnote-3549461
-Node: String Functions549733
-Ref: String Functions-Footnote-1574043
-Ref: String Functions-Footnote-2574171
-Ref: String Functions-Footnote-3574419
-Node: Gory Details574506
-Ref: table-sub-escapes576297
-Ref: table-sub-proposed577816
-Ref: table-posix-sub579179
-Ref: table-gensub-escapes580720
-Ref: Gory Details-Footnote-1581543
-Node: I/O Functions581697
-Ref: table-system-return-values588151
-Ref: I/O Functions-Footnote-1590231
-Ref: I/O Functions-Footnote-2590379
-Node: Time Functions590499
-Ref: Time Functions-Footnote-1601170
-Ref: Time Functions-Footnote-2601238
-Ref: Time Functions-Footnote-3601396
-Ref: Time Functions-Footnote-4601507
-Ref: Time Functions-Footnote-5601619
-Ref: Time Functions-Footnote-6601846
-Node: Bitwise Functions602112
-Ref: table-bitwise-ops602706
-Ref: Bitwise Functions-Footnote-1608769
-Ref: Bitwise Functions-Footnote-2608942
-Node: Type Functions609133
-Node: I18N Functions611996
-Node: User-defined613647
-Node: Definition Syntax614459
-Ref: Definition Syntax-Footnote-1620153
-Node: Function Example620224
-Ref: Function Example-Footnote-1623146
-Node: Function Calling623168
-Node: Calling A Function623756
-Node: Variable Scope624714
-Node: Pass By Value/Reference627708
-Node: Function Caveats630352
-Ref: Function Caveats-Footnote-1632399
-Node: Return Statement632519
-Node: Dynamic Typing635498
-Node: Indirect Calls636428
-Ref: Indirect Calls-Footnote-1646680
-Node: Functions Summary646808
-Node: Library Functions649513
-Ref: Library Functions-Footnote-1653120
-Ref: Library Functions-Footnote-2653263
-Node: Library Names653434
-Ref: Library Names-Footnote-1657101
-Ref: Library Names-Footnote-2657324
-Node: General Functions657410
-Node: Strtonum Function658592
-Node: Assert Function661614
-Node: Round Function664940
-Node: Cliff Random Function666480
-Node: Ordinal Functions667496
-Ref: Ordinal Functions-Footnote-1670559
-Ref: Ordinal Functions-Footnote-2670811
-Node: Join Function671021
-Ref: Join Function-Footnote-1672791
-Node: Getlocaltime Function672991
-Node: Readfile Function676733
-Node: Shell Quoting678710
-Node: Isnumeric Function680138
-Node: Data File Management681526
-Node: Filetrans Function682158
-Node: Rewind Function686254
-Node: File Checking688163
-Ref: File Checking-Footnote-1689497
-Node: Empty Files689698
-Node: Ignoring Assigns691677
-Node: Getopt Function693227
-Ref: Getopt Function-Footnote-1708450
-Node: Passwd Functions708650
-Ref: Passwd Functions-Footnote-1717489
-Node: Group Functions717577
-Ref: Group Functions-Footnote-1725475
-Node: Walking Arrays725682
-Node: Library Functions Summary728690
-Node: Library Exercises730096
-Node: Sample Programs730561
-Node: Running Examples731331
-Node: Clones732059
-Node: Cut Program733283
-Node: Egrep Program743423
-Node: Id Program752424
-Node: Split Program762371
-Ref: Split Program-Footnote-1772264
-Node: Tee Program772437
-Node: Uniq Program775227
-Node: Wc Program782815
-Node: Bytes vs. Characters783202
-Node: Using extensions784750
-Node: wc program785504
-Node: Miscellaneous Programs790369
-Node: Dupword Program791582
-Node: Alarm Program793612
-Node: Translate Program798467
-Ref: Translate Program-Footnote-1803032
-Node: Labels Program803302
-Ref: Labels Program-Footnote-1806653
-Node: Word Sorting806737
-Node: History Sorting810809
-Node: Extract Program813034
-Node: Simple Sed821088
-Node: Igawk Program824162
-Ref: Igawk Program-Footnote-1838493
-Ref: Igawk Program-Footnote-2838695
-Ref: Igawk Program-Footnote-3838817
-Node: Anagram Program838932
-Node: Signature Program841994
-Node: Programs Summary843241
-Node: Programs Exercises844455
-Ref: Programs Exercises-Footnote-1848585
-Node: Advanced Features848671
-Node: Nondecimal Data850738
-Node: Array Sorting852329
-Node: Controlling Array Traversal853029
-Ref: Controlling Array Traversal-Footnote-1861397
-Node: Array Sorting Functions861515
-Ref: Array Sorting Functions-Footnote-1866889
-Node: Two-way I/O867085
-Ref: Two-way I/O-Footnote-1874811
-Ref: Two-way I/O-Footnote-2874998
-Node: TCP/IP Networking875080
-Node: Profiling878198
-Node: Extension Philosophy887507
-Node: Advanced Features Summary888986
-Node: Internationalization891001
-Node: I18N and L10N892675
-Node: Explaining gettext893362
-Ref: Explaining gettext-Footnote-1899254
-Ref: Explaining gettext-Footnote-2899439
-Node: Programmer i18n899604
-Ref: Programmer i18n-Footnote-1904553
-Node: Translator i18n904602
-Node: String Extraction905396
-Ref: String Extraction-Footnote-1906528
-Node: Printf Ordering906614
-Ref: Printf Ordering-Footnote-1909400
-Node: I18N Portability909464
-Ref: I18N Portability-Footnote-1911920
-Node: I18N Example911983
-Ref: I18N Example-Footnote-1915258
-Ref: I18N Example-Footnote-2915331
-Node: Gawk I18N915440
-Node: I18N Summary916089
-Node: Debugger917430
-Node: Debugging918430
-Node: Debugging Concepts918871
-Node: Debugging Terms920680
-Node: Awk Debugging923255
-Ref: Awk Debugging-Footnote-1924200
-Node: Sample Debugging Session924332
-Node: Debugger Invocation924866
-Node: Finding The Bug926252
-Node: List of Debugger Commands932726
-Node: Breakpoint Control934059
-Node: Debugger Execution Control937753
-Node: Viewing And Changing Data941115
-Node: Execution Stack944656
-Node: Debugger Info946293
-Node: Miscellaneous Debugger Commands950364
-Node: Readline Support955426
-Node: Limitations956322
-Node: Debugging Summary958876
-Node: Namespaces960155
-Node: Global Namespace961266
-Node: Qualified Names962664
-Node: Default Namespace963663
-Node: Changing The Namespace964404
-Node: Naming Rules966018
-Node: Internal Name Management967866
-Node: Namespace Example968908
-Node: Namespace And Features971470
-Node: Namespace Summary972905
-Node: Arbitrary Precision Arithmetic974382
-Node: Computer Arithmetic975869
-Ref: table-numeric-ranges979635
-Ref: table-floating-point-ranges980128
-Ref: Computer Arithmetic-Footnote-1980786
-Node: Math Definitions980843
-Ref: table-ieee-formats984159
-Ref: Math Definitions-Footnote-1984762
-Node: MPFR features984867
-Node: FP Math Caution986585
-Ref: FP Math Caution-Footnote-1987657
-Node: Inexactness of computations988026
-Node: Inexact representation988986
-Node: Comparing FP Values990346
-Node: Errors accumulate991587
-Node: Getting Accuracy993020
-Node: Try To Round995730
-Node: Setting precision996629
-Ref: table-predefined-precision-strings997326
-Node: Setting the rounding mode999156
-Ref: table-gawk-rounding-modes999530
-Ref: Setting the rounding mode-Footnote-11003461
-Node: Arbitrary Precision Integers1003640
-Ref: Arbitrary Precision Integers-Footnote-11006815
-Node: Checking for MPFR1006964
-Node: POSIX Floating Point Problems1008438
-Ref: POSIX Floating Point Problems-Footnote-11012723
-Node: Floating point summary1012761
-Node: Dynamic Extensions1014951
-Node: Extension Intro1016504
-Node: Plugin License1017770
-Node: Extension Mechanism Outline1018567
-Ref: figure-load-extension1019006
-Ref: figure-register-new-function1020571
-Ref: figure-call-new-function1021663
-Node: Extension API Description1023725
-Node: Extension API Functions Introduction1025438
-Ref: table-api-std-headers1027274
-Node: General Data Types1031523
-Ref: General Data Types-Footnote-11040153
-Node: Memory Allocation Functions1040452
-Ref: Memory Allocation Functions-Footnote-11044953
-Node: Constructor Functions1045052
-Node: API Ownership of MPFR and GMP Values1048518
-Node: Registration Functions1049831
-Node: Extension Functions1050531
-Node: Exit Callback Functions1055853
-Node: Extension Version String1057103
-Node: Input Parsers1057766
-Node: Output Wrappers1070487
-Node: Two-way processors1074999
-Node: Printing Messages1077264
-Ref: Printing Messages-Footnote-11078435
-Node: Updating ERRNO1078588
-Node: Requesting Values1079327
-Ref: table-value-types-returned1080064
-Node: Accessing Parameters1081000
-Node: Symbol Table Access1082237
-Node: Symbol table by name1082749
-Ref: Symbol table by name-Footnote-11085773
-Node: Symbol table by cookie1085901
-Ref: Symbol table by cookie-Footnote-11090086
-Node: Cached values1090150
-Ref: Cached values-Footnote-11093686
-Node: Array Manipulation1093839
-Ref: Array Manipulation-Footnote-11094930
-Node: Array Data Types1094967
-Ref: Array Data Types-Footnote-11097625
-Node: Array Functions1097717
-Node: Flattening Arrays1102215
-Node: Creating Arrays1109191
-Node: Redirection API1113958
-Node: Extension API Variables1116791
-Node: Extension Versioning1117502
-Ref: gawk-api-version1117931
-Node: Extension GMP/MPFR Versioning1119662
-Node: Extension API Informational Variables1121290
-Node: Extension API Boilerplate1122363
-Node: Changes from API V11126337
-Node: Finding Extensions1127909
-Node: Extension Example1128468
-Node: Internal File Description1129266
-Node: Internal File Ops1133346
-Ref: Internal File Ops-Footnote-11144696
-Node: Using Internal File Ops1144836
-Ref: Using Internal File Ops-Footnote-11147219
-Node: Extension Samples1147493
-Node: Extension Sample File Functions1149022
-Node: Extension Sample Fnmatch1156671
-Node: Extension Sample Fork1158158
-Node: Extension Sample Inplace1159376
-Node: Extension Sample Ord1163002
-Node: Extension Sample Readdir1163838
-Ref: table-readdir-file-types1164727
-Node: Extension Sample Revout1165794
-Node: Extension Sample Rev2way1166383
-Node: Extension Sample Read write array1167123
-Node: Extension Sample Readfile1169065
-Node: Extension Sample Time1170160
-Node: Extension Sample API Tests1171912
-Node: gawkextlib1172404
-Node: Extension summary1175322
-Node: Extension Exercises1179024
-Node: Language History1180266
-Node: V7/SVR3.11181922
-Node: SVR41184074
-Node: POSIX1185508
-Node: BTL1186889
-Node: POSIX/GNU1187618
-Node: Feature History1193396
-Node: Common Extensions1210571
-Node: Ranges and Locales1211854
-Ref: Ranges and Locales-Footnote-11216470
-Ref: Ranges and Locales-Footnote-21216497
-Ref: Ranges and Locales-Footnote-31216732
-Node: Contributors1216955
-Node: History summary1222952
-Node: Installation1224332
-Node: Gawk Distribution1225276
-Node: Getting1225760
-Node: Extracting1226723
-Node: Distribution contents1228361
-Node: Unix Installation1234841
-Node: Quick Installation1235523
-Node: Compiling with MPFR1238004
-Node: Shell Startup Files1238696
-Node: Additional Configuration Options1239785
-Node: Configuration Philosophy1242100
-Node: Non-Unix Installation1244469
-Node: PC Installation1244929
-Node: PC Binary Installation1245767
-Node: PC Compiling1246202
-Node: PC Using1247319
-Node: Cygwin1250872
-Node: MSYS1252096
-Node: VMS Installation1252698
-Node: VMS Compilation1253417
-Ref: VMS Compilation-Footnote-11254646
-Node: VMS Dynamic Extensions1254704
-Node: VMS Installation Details1256389
-Node: VMS Running1258651
-Node: VMS GNV1262930
-Node: Bugs1263644
-Node: Bug definition1264524
-Node: Bug address1267028
-Node: Usenet1270416
-Node: Performance bugs1271425
-Node: Asking for help1274346
-Node: Maintainers1276308
-Node: Other Versions1277502
-Node: Installation summary1285354
-Node: Notes1286718
-Node: Compatibility Mode1287512
-Node: Additions1288294
-Node: Accessing The Source1289219
-Node: Adding Code1290656
-Node: New Ports1296875
-Node: Derived Files1301250
-Ref: Derived Files-Footnote-11306910
-Ref: Derived Files-Footnote-21306945
-Ref: Derived Files-Footnote-31307543
-Node: Future Extensions1307657
-Node: Implementation Limitations1308315
-Node: Extension Design1309525
-Node: Old Extension Problems1310669
-Ref: Old Extension Problems-Footnote-11312187
-Node: Extension New Mechanism Goals1312244
-Ref: Extension New Mechanism Goals-Footnote-11315608
-Node: Extension Other Design Decisions1315797
-Node: Extension Future Growth1317910
-Node: Notes summary1318516
-Node: Basic Concepts1319674
-Node: Basic High Level1320355
-Ref: figure-general-flow1320637
-Ref: figure-process-flow1321322
-Ref: Basic High Level-Footnote-11324623
-Node: Basic Data Typing1324808
-Node: Glossary1328136
-Node: Copying1360021
-Node: GNU Free Documentation License1397564
-Node: Index1422684
+Node: Foreword345355
+Node: Foreword449797
+Node: Preface51329
+Ref: Preface-Footnote-154188
+Ref: Preface-Footnote-254297
+Ref: Preface-Footnote-354531
+Node: History54673
+Node: Names57025
+Ref: Names-Footnote-158129
+Node: This Manual58276
+Ref: This Manual-Footnote-164915
+Node: Conventions65015
+Node: Manual History67384
+Ref: Manual History-Footnote-170381
+Ref: Manual History-Footnote-270422
+Node: How To Contribute70496
+Node: Acknowledgments71422
+Node: Getting Started76359
+Node: Running gawk78798
+Node: One-shot79988
+Node: Read Terminal81251
+Node: Long83244
+Node: Executable Scripts84757
+Ref: Executable Scripts-Footnote-187390
+Node: Comments87493
+Node: Quoting89977
+Node: DOS Quoting95503
+Node: Sample Data Files97559
+Node: Very Simple100154
+Node: Two Rules106256
+Node: More Complex108141
+Node: Statements/Lines110473
+Ref: Statements/Lines-Footnote-1114957
+Node: Other Features115222
+Node: When116158
+Ref: When-Footnote-1117912
+Node: Intro Summary117977
+Node: Invoking Gawk118861
+Node: Command Line120375
+Node: Options121173
+Ref: Options-Footnote-1139087
+Ref: Options-Footnote-2139318
+Node: Other Arguments139343
+Node: Naming Standard Input143354
+Node: Environment Variables144564
+Node: AWKPATH Variable145122
+Ref: AWKPATH Variable-Footnote-1148534
+Ref: AWKPATH Variable-Footnote-2148568
+Node: AWKLIBPATH Variable148939
+Ref: AWKLIBPATH Variable-Footnote-1150636
+Node: Other Environment Variables151011
+Node: Exit Status154963
+Node: Include Files155640
+Node: Loading Shared Libraries159330
+Node: Obsolete160758
+Node: Undocumented161450
+Node: Invoking Summary161747
+Node: Regexp164588
+Node: Regexp Usage166042
+Node: Escape Sequences168079
+Node: Regexp Operators174320
+Node: Regexp Operator Details174805
+Ref: Regexp Operator Details-Footnote-1182169
+Node: Interval Expressions182316
+Ref: Interval Expressions-Footnote-1183737
+Node: Bracket Expressions183835
+Ref: table-char-classes186311
+Node: Leftmost Longest189637
+Node: Computed Regexps190940
+Node: GNU Regexp Operators194367
+Node: Case-sensitivity198104
+Ref: Case-sensitivity-Footnote-1200970
+Ref: Case-sensitivity-Footnote-2201205
+Node: Regexp Summary201313
+Node: Reading Files202779
+Node: Records205048
+Node: awk split records206123
+Node: gawk split records210823
+Ref: gawk split records-Footnote-1215897
+Node: Fields215934
+Node: Nonconstant Fields218675
+Ref: Nonconstant Fields-Footnote-1220911
+Node: Changing Fields221115
+Node: Field Separators227146
+Node: Default Field Splitting229844
+Node: Regexp Field Splitting230962
+Node: Single Character Fields234639
+Node: Command Line Field Separator235699
+Node: Full Line Fields238917
+Ref: Full Line Fields-Footnote-1240439
+Ref: Full Line Fields-Footnote-2240485
+Node: Field Splitting Summary240586
+Node: Constant Size242660
+Node: Fixed width data243392
+Node: Skipping intervening246859
+Node: Allowing trailing data247657
+Node: Fields with fixed data248694
+Node: Splitting By Content250212
+Ref: Splitting By Content-Footnote-1253995
+Node: More CSV254158
+Node: Testing field creation255750
+Node: Multiple Line257375
+Node: Getline263652
+Node: Plain Getline266121
+Node: Getline/Variable268694
+Node: Getline/File269845
+Node: Getline/Variable/File271233
+Ref: Getline/Variable/File-Footnote-1272838
+Node: Getline/Pipe272926
+Node: Getline/Variable/Pipe275630
+Node: Getline/Coprocess276765
+Node: Getline/Variable/Coprocess278032
+Node: Getline Notes278774
+Node: Getline Summary281571
+Ref: table-getline-variants281995
+Node: Read Timeout282743
+Ref: Read Timeout-Footnote-1286649
+Node: Retrying Input286707
+Node: Command-line directories287906
+Node: Input Summary288812
+Node: Input Exercises291984
+Node: Printing292418
+Node: Print294252
+Node: Print Examples295709
+Node: Output Separators298489
+Node: OFMT300506
+Node: Printf301862
+Node: Basic Printf302647
+Node: Control Letters304221
+Node: Format Modifiers309383
+Node: Printf Examples315398
+Node: Redirection317884
+Node: Special FD324725
+Ref: Special FD-Footnote-1327893
+Node: Special Files327967
+Node: Other Inherited Files328584
+Node: Special Network329585
+Node: Special Caveats330445
+Node: Close Files And Pipes331394
+Ref: table-close-pipe-return-values338301
+Ref: Close Files And Pipes-Footnote-1339114
+Ref: Close Files And Pipes-Footnote-2339262
+Node: Nonfatal339414
+Node: Output Summary341752
+Node: Output Exercises342974
+Node: Expressions343653
+Node: Values344841
+Node: Constants345519
+Node: Scalar Constants346210
+Ref: Scalar Constants-Footnote-1348720
+Node: Nondecimal-numbers348970
+Node: Regexp Constants351971
+Node: Using Constant Regexps352497
+Node: Standard Regexp Constants353119
+Node: Strong Regexp Constants356307
+Node: Variables359319
+Node: Using Variables359976
+Node: Assignment Options361886
+Node: Conversion364357
+Node: Strings And Numbers364881
+Ref: Strings And Numbers-Footnote-1367944
+Node: Locale influences conversions368053
+Ref: table-locale-affects370811
+Node: All Operators371429
+Node: Arithmetic Ops372058
+Node: Concatenation374774
+Ref: Concatenation-Footnote-1377621
+Node: Assignment Ops377728
+Ref: table-assign-ops382719
+Node: Increment Ops384032
+Node: Truth Values and Conditions387492
+Node: Truth Values388566
+Node: Typing and Comparison389614
+Node: Variable Typing390434
+Ref: Variable Typing-Footnote-1396897
+Ref: Variable Typing-Footnote-2396969
+Node: Comparison Operators397046
+Ref: table-relational-ops397465
+Node: POSIX String Comparison400960
+Ref: POSIX String Comparison-Footnote-1402655
+Ref: POSIX String Comparison-Footnote-2402794
+Node: Boolean Ops402878
+Ref: Boolean Ops-Footnote-1407360
+Node: Conditional Exp407452
+Node: Function Calls409188
+Node: Precedence413065
+Node: Locales416724
+Node: Expressions Summary418356
+Node: Patterns and Actions420929
+Node: Pattern Overview422049
+Node: Regexp Patterns423726
+Node: Expression Patterns424268
+Node: Ranges428049
+Node: BEGIN/END431157
+Node: Using BEGIN/END431918
+Ref: Using BEGIN/END-Footnote-1434672
+Node: I/O And BEGIN/END434778
+Node: BEGINFILE/ENDFILE437091
+Node: Empty440322
+Node: Using Shell Variables440639
+Node: Action Overview442913
+Node: Statements445238
+Node: If Statement447086
+Node: While Statement448581
+Node: Do Statement450609
+Node: For Statement451757
+Node: Switch Statement454928
+Node: Break Statement457369
+Node: Continue Statement459461
+Node: Next Statement461288
+Node: Nextfile Statement463671
+Node: Exit Statement466360
+Node: Built-in Variables468763
+Node: User-modified469896
+Node: Auto-set477663
+Ref: Auto-set-Footnote-1494470
+Ref: Auto-set-Footnote-2494676
+Node: ARGC and ARGV494732
+Node: Pattern Action Summary498945
+Node: Arrays501375
+Node: Array Basics502704
+Node: Array Intro503548
+Ref: figure-array-elements505523
+Ref: Array Intro-Footnote-1508227
+Node: Reference to Elements508355
+Node: Assigning Elements510819
+Node: Array Example511310
+Node: Scanning an Array513069
+Node: Controlling Scanning516091
+Ref: Controlling Scanning-Footnote-1522547
+Node: Numeric Array Subscripts522863
+Node: Uninitialized Subscripts525047
+Node: Delete526666
+Ref: Delete-Footnote-1529418
+Node: Multidimensional529475
+Node: Multiscanning532570
+Node: Arrays of Arrays534161
+Node: Arrays Summary538929
+Node: Functions541022
+Node: Built-in542060
+Node: Calling Built-in543213
+Node: Boolean Functions545209
+Node: Numeric Functions545763
+Ref: Numeric Functions-Footnote-1549790
+Ref: Numeric Functions-Footnote-2550438
+Ref: Numeric Functions-Footnote-3550486
+Node: String Functions550758
+Ref: String Functions-Footnote-1575068
+Ref: String Functions-Footnote-2575196
+Ref: String Functions-Footnote-3575444
+Node: Gory Details575531
+Ref: table-sub-escapes577322
+Ref: table-sub-proposed578841
+Ref: table-posix-sub580204
+Ref: table-gensub-escapes581745
+Ref: Gory Details-Footnote-1582568
+Node: I/O Functions582722
+Ref: table-system-return-values589176
+Ref: I/O Functions-Footnote-1591256
+Ref: I/O Functions-Footnote-2591404
+Node: Time Functions591524
+Ref: Time Functions-Footnote-1602195
+Ref: Time Functions-Footnote-2602263
+Ref: Time Functions-Footnote-3602421
+Ref: Time Functions-Footnote-4602532
+Ref: Time Functions-Footnote-5602644
+Ref: Time Functions-Footnote-6602871
+Node: Bitwise Functions603137
+Ref: table-bitwise-ops603731
+Ref: Bitwise Functions-Footnote-1609794
+Ref: Bitwise Functions-Footnote-2609967
+Node: Type Functions610158
+Node: I18N Functions613112
+Node: User-defined614763
+Node: Definition Syntax615575
+Ref: Definition Syntax-Footnote-1621269
+Node: Function Example621340
+Ref: Function Example-Footnote-1624262
+Node: Function Calling624284
+Node: Calling A Function624872
+Node: Variable Scope625830
+Node: Pass By Value/Reference628824
+Node: Function Caveats631468
+Ref: Function Caveats-Footnote-1633515
+Node: Return Statement633635
+Node: Dynamic Typing636614
+Node: Indirect Calls637544
+Ref: Indirect Calls-Footnote-1647799
+Node: Functions Summary647927
+Node: Library Functions650632
+Ref: Library Functions-Footnote-1654239
+Ref: Library Functions-Footnote-2654382
+Node: Library Names654553
+Ref: Library Names-Footnote-1658220
+Ref: Library Names-Footnote-2658443
+Node: General Functions658529
+Node: Strtonum Function659711
+Node: Assert Function662733
+Node: Round Function666059
+Node: Cliff Random Function667599
+Node: Ordinal Functions668615
+Ref: Ordinal Functions-Footnote-1671678
+Ref: Ordinal Functions-Footnote-2671930
+Node: Join Function672140
+Ref: Join Function-Footnote-1673910
+Node: Getlocaltime Function674110
+Node: Readfile Function677852
+Node: Shell Quoting679829
+Node: Isnumeric Function681257
+Node: Data File Management682645
+Node: Filetrans Function683277
+Node: Rewind Function687373
+Node: File Checking689282
+Ref: File Checking-Footnote-1690616
+Node: Empty Files690817
+Node: Ignoring Assigns692796
+Node: Getopt Function694346
+Ref: Getopt Function-Footnote-1709569
+Node: Passwd Functions709769
+Ref: Passwd Functions-Footnote-1718608
+Node: Group Functions718696
+Ref: Group Functions-Footnote-1726594
+Node: Walking Arrays726801
+Node: Library Functions Summary729809
+Node: Library Exercises731215
+Node: Sample Programs731680
+Node: Running Examples732450
+Node: Clones733178
+Node: Cut Program734402
+Node: Egrep Program744542
+Node: Id Program753543
+Node: Split Program763490
+Ref: Split Program-Footnote-1773383
+Node: Tee Program773556
+Node: Uniq Program776346
+Node: Wc Program783934
+Node: Bytes vs. Characters784321
+Node: Using extensions785869
+Node: wc program786623
+Node: Miscellaneous Programs791488
+Node: Dupword Program792701
+Node: Alarm Program794731
+Node: Translate Program799586
+Ref: Translate Program-Footnote-1804151
+Node: Labels Program804421
+Ref: Labels Program-Footnote-1807772
+Node: Word Sorting807856
+Node: History Sorting811928
+Node: Extract Program814153
+Node: Simple Sed822207
+Node: Igawk Program825281
+Ref: Igawk Program-Footnote-1839612
+Ref: Igawk Program-Footnote-2839814
+Ref: Igawk Program-Footnote-3839936
+Node: Anagram Program840051
+Node: Signature Program843113
+Node: Programs Summary844360
+Node: Programs Exercises845574
+Ref: Programs Exercises-Footnote-1849704
+Node: Advanced Features849790
+Node: Nondecimal Data851921
+Node: Boolean Typed Values853519
+Node: Array Sorting855400
+Node: Controlling Array Traversal856105
+Ref: Controlling Array Traversal-Footnote-1864473
+Node: Array Sorting Functions864591
+Ref: Array Sorting Functions-Footnote-1869965
+Node: Two-way I/O870161
+Ref: Two-way I/O-Footnote-1877887
+Ref: Two-way I/O-Footnote-2878074
+Node: TCP/IP Networking878156
+Node: Profiling881274
+Node: Extension Philosophy890583
+Node: Advanced Features Summary892062
+Node: Internationalization894077
+Node: I18N and L10N895751
+Node: Explaining gettext896438
+Ref: Explaining gettext-Footnote-1902330
+Ref: Explaining gettext-Footnote-2902515
+Node: Programmer i18n902680
+Ref: Programmer i18n-Footnote-1907629
+Node: Translator i18n907678
+Node: String Extraction908472
+Ref: String Extraction-Footnote-1909604
+Node: Printf Ordering909690
+Ref: Printf Ordering-Footnote-1912476
+Node: I18N Portability912540
+Ref: I18N Portability-Footnote-1914996
+Node: I18N Example915059
+Ref: I18N Example-Footnote-1918334
+Ref: I18N Example-Footnote-2918407
+Node: Gawk I18N918516
+Node: I18N Summary919165
+Node: Debugger920506
+Node: Debugging921506
+Node: Debugging Concepts921947
+Node: Debugging Terms923756
+Node: Awk Debugging926331
+Ref: Awk Debugging-Footnote-1927276
+Node: Sample Debugging Session927408
+Node: Debugger Invocation927942
+Node: Finding The Bug929328
+Node: List of Debugger Commands935802
+Node: Breakpoint Control937135
+Node: Debugger Execution Control940829
+Node: Viewing And Changing Data944191
+Node: Execution Stack947732
+Node: Debugger Info949369
+Node: Miscellaneous Debugger Commands953440
+Node: Readline Support958502
+Node: Limitations959398
+Node: Debugging Summary961952
+Node: Namespaces963231
+Node: Global Namespace964342
+Node: Qualified Names965740
+Node: Default Namespace966739
+Node: Changing The Namespace967480
+Node: Naming Rules969094
+Node: Internal Name Management970942
+Node: Namespace Example971984
+Node: Namespace And Features974546
+Node: Namespace Summary975981
+Node: Arbitrary Precision Arithmetic977458
+Node: Computer Arithmetic978945
+Ref: table-numeric-ranges982711
+Ref: table-floating-point-ranges983204
+Ref: Computer Arithmetic-Footnote-1983862
+Node: Math Definitions983919
+Ref: table-ieee-formats986895
+Node: MPFR features987462
+Node: FP Math Caution989180
+Ref: FP Math Caution-Footnote-1990252
+Node: Inexactness of computations990621
+Node: Inexact representation991652
+Node: Comparing FP Values993012
+Node: Errors accumulate994253
+Node: Strange values995709
+Ref: Strange values-Footnote-1998297
+Node: Getting Accuracy998402
+Node: Try To Round1001112
+Node: Setting precision1002011
+Ref: table-predefined-precision-strings1002708
+Node: Setting the rounding mode1004538
+Ref: table-gawk-rounding-modes1004912
+Ref: Setting the rounding mode-Footnote-11008843
+Node: Arbitrary Precision Integers1009022
+Ref: Arbitrary Precision Integers-Footnote-11012197
+Node: Checking for MPFR1012346
+Node: POSIX Floating Point Problems1013820
+Ref: POSIX Floating Point Problems-Footnote-11018105
+Node: Floating point summary1018143
+Node: Dynamic Extensions1020333
+Node: Extension Intro1021886
+Node: Plugin License1023152
+Node: Extension Mechanism Outline1023949
+Ref: figure-load-extension1024388
+Ref: figure-register-new-function1025953
+Ref: figure-call-new-function1027045
+Node: Extension API Description1029107
+Node: Extension API Functions Introduction1030820
+Ref: table-api-std-headers1032656
+Node: General Data Types1036905
+Ref: General Data Types-Footnote-11045611
+Node: Memory Allocation Functions1045910
+Ref: Memory Allocation Functions-Footnote-11050411
+Node: Constructor Functions1050510
+Node: API Ownership of MPFR and GMP Values1054163
+Node: Registration Functions1055476
+Node: Extension Functions1056176
+Node: Exit Callback Functions1061498
+Node: Extension Version String1062748
+Node: Input Parsers1063411
+Node: Output Wrappers1076132
+Node: Two-way processors1080644
+Node: Printing Messages1082909
+Ref: Printing Messages-Footnote-11084080
+Node: Updating ERRNO1084233
+Node: Requesting Values1084972
+Ref: table-value-types-returned1085709
+Node: Accessing Parameters1086817
+Node: Symbol Table Access1088054
+Node: Symbol table by name1088566
+Ref: Symbol table by name-Footnote-11091590
+Node: Symbol table by cookie1091718
+Ref: Symbol table by cookie-Footnote-11095903
+Node: Cached values1095967
+Ref: Cached values-Footnote-11099503
+Node: Array Manipulation1099656
+Ref: Array Manipulation-Footnote-11100747
+Node: Array Data Types1100784
+Ref: Array Data Types-Footnote-11103442
+Node: Array Functions1103534
+Node: Flattening Arrays1108032
+Node: Creating Arrays1115008
+Node: Redirection API1119775
+Node: Extension API Variables1122608
+Node: Extension Versioning1123319
+Ref: gawk-api-version1123748
+Node: Extension GMP/MPFR Versioning1125479
+Node: Extension API Informational Variables1127107
+Node: Extension API Boilerplate1128180
+Node: Changes from API V11132154
+Node: Finding Extensions1133726
+Node: Extension Example1134285
+Node: Internal File Description1135083
+Node: Internal File Ops1139163
+Ref: Internal File Ops-Footnote-11150513
+Node: Using Internal File Ops1150653
+Ref: Using Internal File Ops-Footnote-11153036
+Node: Extension Samples1153310
+Node: Extension Sample File Functions1154839
+Node: Extension Sample Fnmatch1162488
+Node: Extension Sample Fork1163975
+Node: Extension Sample Inplace1165193
+Node: Extension Sample Ord1168819
+Node: Extension Sample Readdir1169655
+Ref: table-readdir-file-types1170544
+Node: Extension Sample Revout1171611
+Node: Extension Sample Rev2way1172200
+Node: Extension Sample Read write array1172940
+Node: Extension Sample Readfile1174882
+Node: Extension Sample Time1175977
+Node: Extension Sample API Tests1177729
+Node: gawkextlib1178221
+Node: Extension summary1181139
+Node: Extension Exercises1184841
+Node: Language History1186083
+Node: V7/SVR3.11187739
+Node: SVR41189891
+Node: POSIX1191325
+Node: BTL1192706
+Node: POSIX/GNU1193435
+Node: Feature History1199213
+Node: Common Extensions1216388
+Node: Ranges and Locales1217671
+Ref: Ranges and Locales-Footnote-11222287
+Ref: Ranges and Locales-Footnote-21222314
+Ref: Ranges and Locales-Footnote-31222549
+Node: Contributors1222772
+Node: History summary1228769
+Node: Installation1230149
+Node: Gawk Distribution1231093
+Node: Getting1231577
+Node: Extracting1232540
+Node: Distribution contents1234178
+Node: Unix Installation1240658
+Node: Quick Installation1241340
+Node: Compiling with MPFR1243821
+Node: Shell Startup Files1244513
+Node: Additional Configuration Options1245602
+Node: Configuration Philosophy1247917
+Node: Non-Unix Installation1250286
+Node: PC Installation1250746
+Node: PC Binary Installation1251584
+Node: PC Compiling1252019
+Node: PC Using1253136
+Node: Cygwin1256689
+Node: MSYS1257913
+Node: VMS Installation1258515
+Node: VMS Compilation1259234
+Ref: VMS Compilation-Footnote-11260463
+Node: VMS Dynamic Extensions1260521
+Node: VMS Installation Details1262206
+Node: VMS Running1264468
+Node: VMS GNV1268747
+Node: Bugs1269461
+Node: Bug definition1270341
+Node: Bug address1272845
+Node: Usenet1276233
+Node: Performance bugs1277242
+Node: Asking for help1280163
+Node: Maintainers1282125
+Node: Other Versions1283319
+Node: Installation summary1291171
+Node: Notes1292535
+Node: Compatibility Mode1293329
+Node: Additions1294111
+Node: Accessing The Source1295036
+Node: Adding Code1296473
+Node: New Ports1302692
+Node: Derived Files1307067
+Ref: Derived Files-Footnote-11312727
+Ref: Derived Files-Footnote-21312762
+Ref: Derived Files-Footnote-31313360
+Node: Future Extensions1313474
+Node: Implementation Limitations1314132
+Node: Extension Design1315342
+Node: Old Extension Problems1316486
+Ref: Old Extension Problems-Footnote-11318004
+Node: Extension New Mechanism Goals1318061
+Ref: Extension New Mechanism Goals-Footnote-11321425
+Node: Extension Other Design Decisions1321614
+Node: Extension Future Growth1323727
+Node: Notes summary1324333
+Node: Basic Concepts1325491
+Node: Basic High Level1326172
+Ref: figure-general-flow1326454
+Ref: figure-process-flow1327139
+Ref: Basic High Level-Footnote-11330440
+Node: Basic Data Typing1330625
+Node: Glossary1333953
+Node: Copying1365840
+Node: GNU Free Documentation License1403383
+Node: Index1428503

End Tag Table