diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1446 |
1 files changed, 788 insertions, 658 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index d5a0d604..a382fcb2 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) @@ -38383,608 +38510,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 Management681599 -Node: Filetrans Function682231 -Node: Rewind Function686327 -Node: File Checking688236 -Ref: File Checking-Footnote-1689570 -Node: Empty Files689771 -Node: Ignoring Assigns691750 -Node: Getopt Function693300 -Ref: Getopt Function-Footnote-1708523 -Node: Passwd Functions708723 -Ref: Passwd Functions-Footnote-1717562 -Node: Group Functions717650 -Ref: Group Functions-Footnote-1725548 -Node: Walking Arrays725755 -Node: Library Functions Summary728763 -Node: Library Exercises730169 -Node: Sample Programs730634 -Node: Running Examples731404 -Node: Clones732132 -Node: Cut Program733356 -Node: Egrep Program743496 -Node: Id Program752497 -Node: Split Program762444 -Ref: Split Program-Footnote-1772337 -Node: Tee Program772510 -Node: Uniq Program775300 -Node: Wc Program782888 -Node: Bytes vs. Characters783275 -Node: Using extensions784823 -Node: wc program785577 -Node: Miscellaneous Programs790442 -Node: Dupword Program791655 -Node: Alarm Program793685 -Node: Translate Program798540 -Ref: Translate Program-Footnote-1803105 -Node: Labels Program803375 -Ref: Labels Program-Footnote-1806726 -Node: Word Sorting806810 -Node: History Sorting810882 -Node: Extract Program813107 -Node: Simple Sed821161 -Node: Igawk Program824235 -Ref: Igawk Program-Footnote-1838566 -Ref: Igawk Program-Footnote-2838768 -Ref: Igawk Program-Footnote-3838890 -Node: Anagram Program839005 -Node: Signature Program842067 -Node: Programs Summary843314 -Node: Programs Exercises844528 -Ref: Programs Exercises-Footnote-1848658 -Node: Advanced Features848744 -Node: Nondecimal Data850811 -Node: Array Sorting852402 -Node: Controlling Array Traversal853102 -Ref: Controlling Array Traversal-Footnote-1861470 -Node: Array Sorting Functions861588 -Ref: Array Sorting Functions-Footnote-1866962 -Node: Two-way I/O867158 -Ref: Two-way I/O-Footnote-1874884 -Ref: Two-way I/O-Footnote-2875071 -Node: TCP/IP Networking875153 -Node: Profiling878271 -Node: Extension Philosophy887580 -Node: Advanced Features Summary889059 -Node: Internationalization891074 -Node: I18N and L10N892748 -Node: Explaining gettext893435 -Ref: Explaining gettext-Footnote-1899327 -Ref: Explaining gettext-Footnote-2899512 -Node: Programmer i18n899677 -Ref: Programmer i18n-Footnote-1904626 -Node: Translator i18n904675 -Node: String Extraction905469 -Ref: String Extraction-Footnote-1906601 -Node: Printf Ordering906687 -Ref: Printf Ordering-Footnote-1909473 -Node: I18N Portability909537 -Ref: I18N Portability-Footnote-1911993 -Node: I18N Example912056 -Ref: I18N Example-Footnote-1915331 -Ref: I18N Example-Footnote-2915404 -Node: Gawk I18N915513 -Node: I18N Summary916162 -Node: Debugger917503 -Node: Debugging918503 -Node: Debugging Concepts918944 -Node: Debugging Terms920753 -Node: Awk Debugging923328 -Ref: Awk Debugging-Footnote-1924273 -Node: Sample Debugging Session924405 -Node: Debugger Invocation924939 -Node: Finding The Bug926325 -Node: List of Debugger Commands932799 -Node: Breakpoint Control934132 -Node: Debugger Execution Control937826 -Node: Viewing And Changing Data941188 -Node: Execution Stack944729 -Node: Debugger Info946366 -Node: Miscellaneous Debugger Commands950437 -Node: Readline Support955499 -Node: Limitations956395 -Node: Debugging Summary958949 -Node: Namespaces960228 -Node: Global Namespace961339 -Node: Qualified Names962737 -Node: Default Namespace963736 -Node: Changing The Namespace964477 -Node: Naming Rules966091 -Node: Internal Name Management967939 -Node: Namespace Example968981 -Node: Namespace And Features971543 -Node: Namespace Summary972978 -Node: Arbitrary Precision Arithmetic974455 -Node: Computer Arithmetic975942 -Ref: table-numeric-ranges979708 -Ref: table-floating-point-ranges980201 -Ref: Computer Arithmetic-Footnote-1980859 -Node: Math Definitions980916 -Ref: table-ieee-formats984232 -Ref: Math Definitions-Footnote-1984835 -Node: MPFR features984940 -Node: FP Math Caution986658 -Ref: FP Math Caution-Footnote-1987730 -Node: Inexactness of computations988099 -Node: Inexact representation989059 -Node: Comparing FP Values990419 -Node: Errors accumulate991660 -Node: Getting Accuracy993093 -Node: Try To Round995803 -Node: Setting precision996702 -Ref: table-predefined-precision-strings997399 -Node: Setting the rounding mode999229 -Ref: table-gawk-rounding-modes999603 -Ref: Setting the rounding mode-Footnote-11003534 -Node: Arbitrary Precision Integers1003713 -Ref: Arbitrary Precision Integers-Footnote-11006888 -Node: Checking for MPFR1007037 -Node: POSIX Floating Point Problems1008511 -Ref: POSIX Floating Point Problems-Footnote-11012796 -Node: Floating point summary1012834 -Node: Dynamic Extensions1015024 -Node: Extension Intro1016577 -Node: Plugin License1017843 -Node: Extension Mechanism Outline1018640 -Ref: figure-load-extension1019079 -Ref: figure-register-new-function1020644 -Ref: figure-call-new-function1021736 -Node: Extension API Description1023798 -Node: Extension API Functions Introduction1025511 -Ref: table-api-std-headers1027347 -Node: General Data Types1031596 -Ref: General Data Types-Footnote-11040226 -Node: Memory Allocation Functions1040525 -Ref: Memory Allocation Functions-Footnote-11045026 -Node: Constructor Functions1045125 -Node: API Ownership of MPFR and GMP Values1048591 -Node: Registration Functions1049904 -Node: Extension Functions1050604 -Node: Exit Callback Functions1055926 -Node: Extension Version String1057176 -Node: Input Parsers1057839 -Node: Output Wrappers1070560 -Node: Two-way processors1075072 -Node: Printing Messages1077337 -Ref: Printing Messages-Footnote-11078508 -Node: Updating ERRNO1078661 -Node: Requesting Values1079400 -Ref: table-value-types-returned1080137 -Node: Accessing Parameters1081073 -Node: Symbol Table Access1082310 -Node: Symbol table by name1082822 -Ref: Symbol table by name-Footnote-11085846 -Node: Symbol table by cookie1085974 -Ref: Symbol table by cookie-Footnote-11090159 -Node: Cached values1090223 -Ref: Cached values-Footnote-11093759 -Node: Array Manipulation1093912 -Ref: Array Manipulation-Footnote-11095003 -Node: Array Data Types1095040 -Ref: Array Data Types-Footnote-11097698 -Node: Array Functions1097790 -Node: Flattening Arrays1102288 -Node: Creating Arrays1109264 -Node: Redirection API1114031 -Node: Extension API Variables1116864 -Node: Extension Versioning1117575 -Ref: gawk-api-version1118004 -Node: Extension GMP/MPFR Versioning1119735 -Node: Extension API Informational Variables1121363 -Node: Extension API Boilerplate1122436 -Node: Changes from API V11126410 -Node: Finding Extensions1127982 -Node: Extension Example1128541 -Node: Internal File Description1129339 -Node: Internal File Ops1133419 -Ref: Internal File Ops-Footnote-11144769 -Node: Using Internal File Ops1144909 -Ref: Using Internal File Ops-Footnote-11147292 -Node: Extension Samples1147566 -Node: Extension Sample File Functions1149095 -Node: Extension Sample Fnmatch1156744 -Node: Extension Sample Fork1158231 -Node: Extension Sample Inplace1159449 -Node: Extension Sample Ord1163075 -Node: Extension Sample Readdir1163911 -Ref: table-readdir-file-types1164800 -Node: Extension Sample Revout1165867 -Node: Extension Sample Rev2way1166456 -Node: Extension Sample Read write array1167196 -Node: Extension Sample Readfile1169138 -Node: Extension Sample Time1170233 -Node: Extension Sample API Tests1171985 -Node: gawkextlib1172477 -Node: Extension summary1175395 -Node: Extension Exercises1179097 -Node: Language History1180339 -Node: V7/SVR3.11181995 -Node: SVR41184147 -Node: POSIX1185581 -Node: BTL1186962 -Node: POSIX/GNU1187691 -Node: Feature History1193469 -Node: Common Extensions1210644 -Node: Ranges and Locales1211927 -Ref: Ranges and Locales-Footnote-11216543 -Ref: Ranges and Locales-Footnote-21216570 -Ref: Ranges and Locales-Footnote-31216805 -Node: Contributors1217028 -Node: History summary1223025 -Node: Installation1224405 -Node: Gawk Distribution1225349 -Node: Getting1225833 -Node: Extracting1226796 -Node: Distribution contents1228434 -Node: Unix Installation1234914 -Node: Quick Installation1235596 -Node: Compiling with MPFR1238077 -Node: Shell Startup Files1238769 -Node: Additional Configuration Options1239858 -Node: Configuration Philosophy1242173 -Node: Non-Unix Installation1244542 -Node: PC Installation1245002 -Node: PC Binary Installation1245840 -Node: PC Compiling1246275 -Node: PC Using1247392 -Node: Cygwin1250945 -Node: MSYS1252169 -Node: VMS Installation1252771 -Node: VMS Compilation1253562 -Ref: VMS Compilation-Footnote-11254791 -Node: VMS Dynamic Extensions1254849 -Node: VMS Installation Details1256534 -Node: VMS Running1258787 -Node: VMS GNV1263066 -Node: VMS Old Gawk1263801 -Node: Bugs1264272 -Node: Bug definition1265152 -Node: Bug address1267656 -Node: Usenet1271044 -Node: Performance bugs1272053 -Node: Asking for help1274974 -Node: Maintainers1276936 -Node: Other Versions1278130 -Node: Installation summary1285982 -Node: Notes1287346 -Node: Compatibility Mode1288140 -Node: Additions1288922 -Node: Accessing The Source1289847 -Node: Adding Code1291284 -Node: New Ports1297503 -Node: Derived Files1301878 -Ref: Derived Files-Footnote-11307538 -Ref: Derived Files-Footnote-21307573 -Ref: Derived Files-Footnote-31308171 -Node: Future Extensions1308285 -Node: Implementation Limitations1308943 -Node: Extension Design1310153 -Node: Old Extension Problems1311297 -Ref: Old Extension Problems-Footnote-11312815 -Node: Extension New Mechanism Goals1312872 -Ref: Extension New Mechanism Goals-Footnote-11316236 -Node: Extension Other Design Decisions1316425 -Node: Extension Future Growth1318538 -Node: Notes summary1319144 -Node: Basic Concepts1320302 -Node: Basic High Level1320983 -Ref: figure-general-flow1321265 -Ref: figure-process-flow1321950 -Ref: Basic High Level-Footnote-11325251 -Node: Basic Data Typing1325436 -Node: Glossary1328764 -Node: Copying1360649 -Node: GNU Free Documentation License1398192 -Node: Index1423312 +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 Management682718 +Node: Filetrans Function683350 +Node: Rewind Function687446 +Node: File Checking689355 +Ref: File Checking-Footnote-1690689 +Node: Empty Files690890 +Node: Ignoring Assigns692869 +Node: Getopt Function694419 +Ref: Getopt Function-Footnote-1709642 +Node: Passwd Functions709842 +Ref: Passwd Functions-Footnote-1718681 +Node: Group Functions718769 +Ref: Group Functions-Footnote-1726667 +Node: Walking Arrays726874 +Node: Library Functions Summary729882 +Node: Library Exercises731288 +Node: Sample Programs731753 +Node: Running Examples732523 +Node: Clones733251 +Node: Cut Program734475 +Node: Egrep Program744615 +Node: Id Program753616 +Node: Split Program763563 +Ref: Split Program-Footnote-1773456 +Node: Tee Program773629 +Node: Uniq Program776419 +Node: Wc Program784007 +Node: Bytes vs. Characters784394 +Node: Using extensions785942 +Node: wc program786696 +Node: Miscellaneous Programs791561 +Node: Dupword Program792774 +Node: Alarm Program794804 +Node: Translate Program799659 +Ref: Translate Program-Footnote-1804224 +Node: Labels Program804494 +Ref: Labels Program-Footnote-1807845 +Node: Word Sorting807929 +Node: History Sorting812001 +Node: Extract Program814226 +Node: Simple Sed822280 +Node: Igawk Program825354 +Ref: Igawk Program-Footnote-1839685 +Ref: Igawk Program-Footnote-2839887 +Ref: Igawk Program-Footnote-3840009 +Node: Anagram Program840124 +Node: Signature Program843186 +Node: Programs Summary844433 +Node: Programs Exercises845647 +Ref: Programs Exercises-Footnote-1849777 +Node: Advanced Features849863 +Node: Nondecimal Data851994 +Node: Boolean Typed Values853592 +Node: Array Sorting855473 +Node: Controlling Array Traversal856178 +Ref: Controlling Array Traversal-Footnote-1864546 +Node: Array Sorting Functions864664 +Ref: Array Sorting Functions-Footnote-1870038 +Node: Two-way I/O870234 +Ref: Two-way I/O-Footnote-1877960 +Ref: Two-way I/O-Footnote-2878147 +Node: TCP/IP Networking878229 +Node: Profiling881347 +Node: Extension Philosophy890656 +Node: Advanced Features Summary892135 +Node: Internationalization894150 +Node: I18N and L10N895824 +Node: Explaining gettext896511 +Ref: Explaining gettext-Footnote-1902403 +Ref: Explaining gettext-Footnote-2902588 +Node: Programmer i18n902753 +Ref: Programmer i18n-Footnote-1907702 +Node: Translator i18n907751 +Node: String Extraction908545 +Ref: String Extraction-Footnote-1909677 +Node: Printf Ordering909763 +Ref: Printf Ordering-Footnote-1912549 +Node: I18N Portability912613 +Ref: I18N Portability-Footnote-1915069 +Node: I18N Example915132 +Ref: I18N Example-Footnote-1918407 +Ref: I18N Example-Footnote-2918480 +Node: Gawk I18N918589 +Node: I18N Summary919238 +Node: Debugger920579 +Node: Debugging921579 +Node: Debugging Concepts922020 +Node: Debugging Terms923829 +Node: Awk Debugging926404 +Ref: Awk Debugging-Footnote-1927349 +Node: Sample Debugging Session927481 +Node: Debugger Invocation928015 +Node: Finding The Bug929401 +Node: List of Debugger Commands935875 +Node: Breakpoint Control937208 +Node: Debugger Execution Control940902 +Node: Viewing And Changing Data944264 +Node: Execution Stack947805 +Node: Debugger Info949442 +Node: Miscellaneous Debugger Commands953513 +Node: Readline Support958575 +Node: Limitations959471 +Node: Debugging Summary962025 +Node: Namespaces963304 +Node: Global Namespace964415 +Node: Qualified Names965813 +Node: Default Namespace966812 +Node: Changing The Namespace967553 +Node: Naming Rules969167 +Node: Internal Name Management971015 +Node: Namespace Example972057 +Node: Namespace And Features974619 +Node: Namespace Summary976054 +Node: Arbitrary Precision Arithmetic977531 +Node: Computer Arithmetic979018 +Ref: table-numeric-ranges982784 +Ref: table-floating-point-ranges983277 +Ref: Computer Arithmetic-Footnote-1983935 +Node: Math Definitions983992 +Ref: table-ieee-formats986968 +Node: MPFR features987535 +Node: FP Math Caution989253 +Ref: FP Math Caution-Footnote-1990325 +Node: Inexactness of computations990694 +Node: Inexact representation991725 +Node: Comparing FP Values993085 +Node: Errors accumulate994326 +Node: Strange values995782 +Ref: Strange values-Footnote-1998370 +Node: Getting Accuracy998475 +Node: Try To Round1001185 +Node: Setting precision1002084 +Ref: table-predefined-precision-strings1002781 +Node: Setting the rounding mode1004611 +Ref: table-gawk-rounding-modes1004985 +Ref: Setting the rounding mode-Footnote-11008916 +Node: Arbitrary Precision Integers1009095 +Ref: Arbitrary Precision Integers-Footnote-11012270 +Node: Checking for MPFR1012419 +Node: POSIX Floating Point Problems1013893 +Ref: POSIX Floating Point Problems-Footnote-11018178 +Node: Floating point summary1018216 +Node: Dynamic Extensions1020406 +Node: Extension Intro1021959 +Node: Plugin License1023225 +Node: Extension Mechanism Outline1024022 +Ref: figure-load-extension1024461 +Ref: figure-register-new-function1026026 +Ref: figure-call-new-function1027118 +Node: Extension API Description1029180 +Node: Extension API Functions Introduction1030893 +Ref: table-api-std-headers1032729 +Node: General Data Types1036978 +Ref: General Data Types-Footnote-11045684 +Node: Memory Allocation Functions1045983 +Ref: Memory Allocation Functions-Footnote-11050484 +Node: Constructor Functions1050583 +Node: API Ownership of MPFR and GMP Values1054236 +Node: Registration Functions1055549 +Node: Extension Functions1056249 +Node: Exit Callback Functions1061571 +Node: Extension Version String1062821 +Node: Input Parsers1063484 +Node: Output Wrappers1076205 +Node: Two-way processors1080717 +Node: Printing Messages1082982 +Ref: Printing Messages-Footnote-11084153 +Node: Updating ERRNO1084306 +Node: Requesting Values1085045 +Ref: table-value-types-returned1085782 +Node: Accessing Parameters1086890 +Node: Symbol Table Access1088127 +Node: Symbol table by name1088639 +Ref: Symbol table by name-Footnote-11091663 +Node: Symbol table by cookie1091791 +Ref: Symbol table by cookie-Footnote-11095976 +Node: Cached values1096040 +Ref: Cached values-Footnote-11099576 +Node: Array Manipulation1099729 +Ref: Array Manipulation-Footnote-11100820 +Node: Array Data Types1100857 +Ref: Array Data Types-Footnote-11103515 +Node: Array Functions1103607 +Node: Flattening Arrays1108105 +Node: Creating Arrays1115081 +Node: Redirection API1119848 +Node: Extension API Variables1122681 +Node: Extension Versioning1123392 +Ref: gawk-api-version1123821 +Node: Extension GMP/MPFR Versioning1125552 +Node: Extension API Informational Variables1127180 +Node: Extension API Boilerplate1128253 +Node: Changes from API V11132227 +Node: Finding Extensions1133799 +Node: Extension Example1134358 +Node: Internal File Description1135156 +Node: Internal File Ops1139236 +Ref: Internal File Ops-Footnote-11150586 +Node: Using Internal File Ops1150726 +Ref: Using Internal File Ops-Footnote-11153109 +Node: Extension Samples1153383 +Node: Extension Sample File Functions1154912 +Node: Extension Sample Fnmatch1162561 +Node: Extension Sample Fork1164048 +Node: Extension Sample Inplace1165266 +Node: Extension Sample Ord1168892 +Node: Extension Sample Readdir1169728 +Ref: table-readdir-file-types1170617 +Node: Extension Sample Revout1171684 +Node: Extension Sample Rev2way1172273 +Node: Extension Sample Read write array1173013 +Node: Extension Sample Readfile1174955 +Node: Extension Sample Time1176050 +Node: Extension Sample API Tests1177802 +Node: gawkextlib1178294 +Node: Extension summary1181212 +Node: Extension Exercises1184914 +Node: Language History1186156 +Node: V7/SVR3.11187812 +Node: SVR41189964 +Node: POSIX1191398 +Node: BTL1192779 +Node: POSIX/GNU1193508 +Node: Feature History1199286 +Node: Common Extensions1216461 +Node: Ranges and Locales1217744 +Ref: Ranges and Locales-Footnote-11222360 +Ref: Ranges and Locales-Footnote-21222387 +Ref: Ranges and Locales-Footnote-31222622 +Node: Contributors1222845 +Node: History summary1228842 +Node: Installation1230222 +Node: Gawk Distribution1231166 +Node: Getting1231650 +Node: Extracting1232613 +Node: Distribution contents1234251 +Node: Unix Installation1240731 +Node: Quick Installation1241413 +Node: Compiling with MPFR1243894 +Node: Shell Startup Files1244586 +Node: Additional Configuration Options1245675 +Node: Configuration Philosophy1247990 +Node: Non-Unix Installation1250359 +Node: PC Installation1250819 +Node: PC Binary Installation1251657 +Node: PC Compiling1252092 +Node: PC Using1253209 +Node: Cygwin1256762 +Node: MSYS1257986 +Node: VMS Installation1258588 +Node: VMS Compilation1259379 +Ref: VMS Compilation-Footnote-11260608 +Node: VMS Dynamic Extensions1260666 +Node: VMS Installation Details1262351 +Node: VMS Running1264604 +Node: VMS GNV1268883 +Node: VMS Old Gawk1269618 +Node: Bugs1270089 +Node: Bug definition1270969 +Node: Bug address1273473 +Node: Usenet1276861 +Node: Performance bugs1277870 +Node: Asking for help1280791 +Node: Maintainers1282753 +Node: Other Versions1283947 +Node: Installation summary1291799 +Node: Notes1293163 +Node: Compatibility Mode1293957 +Node: Additions1294739 +Node: Accessing The Source1295664 +Node: Adding Code1297101 +Node: New Ports1303320 +Node: Derived Files1307695 +Ref: Derived Files-Footnote-11313355 +Ref: Derived Files-Footnote-21313390 +Ref: Derived Files-Footnote-31313988 +Node: Future Extensions1314102 +Node: Implementation Limitations1314760 +Node: Extension Design1315970 +Node: Old Extension Problems1317114 +Ref: Old Extension Problems-Footnote-11318632 +Node: Extension New Mechanism Goals1318689 +Ref: Extension New Mechanism Goals-Footnote-11322053 +Node: Extension Other Design Decisions1322242 +Node: Extension Future Growth1324355 +Node: Notes summary1324961 +Node: Basic Concepts1326119 +Node: Basic High Level1326800 +Ref: figure-general-flow1327082 +Ref: figure-process-flow1327767 +Ref: Basic High Level-Footnote-11331068 +Node: Basic Data Typing1331253 +Node: Glossary1334581 +Node: Copying1366468 +Node: GNU Free Documentation License1404011 +Node: Index1429131 End Tag Table |