diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1444 |
1 files changed, 787 insertions, 657 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index b7a050df..a71a01d3 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 @@ -12795,6 +12801,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 @@ -12807,7 +12814,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 -------------------------------- @@ -12851,9 +12858,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 @@ -12879,7 +12901,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()' @@ -12977,7 +12999,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 @@ -13553,7 +13575,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. @@ -13699,7 +13721,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 @@ -13916,7 +13938,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 @@ -14233,7 +14255,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. @@ -14415,7 +14437,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 @@ -14439,6 +14461,9 @@ contexts. '"number"' X is a number. + '"number|bool"' + X is a Boolean typed value (*note Boolean Typed Values::). + '"string"' X is a string. @@ -14500,7 +14525,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 @@ -15179,7 +15204,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 @@ -20932,6 +20957,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. @@ -20941,7 +20967,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 =================================== @@ -20984,9 +21010,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 @@ -21005,7 +21075,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 @@ -21244,7 +21314,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 @@ -21389,7 +21459,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 @@ -21584,7 +21654,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': @@ -21664,7 +21734,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 @@ -21926,7 +21996,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 @@ -21962,7 +22032,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 @@ -24319,18 +24389,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. @@ -24389,11 +24451,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 @@ -24486,6 +24543,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 @@ -24550,7 +24608,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 .......................... @@ -24598,6 +24656,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 @@ -25544,7 +25660,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'. @@ -25557,6 +25674,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 @@ -25572,6 +25690,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. @@ -25882,6 +26001,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 @@ -26607,16 +26731,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 @@ -33409,8 +33534,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 @@ -35567,6 +35692,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) @@ -37156,6 +37282,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,607 +38510,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: Variables359331 -Node: Using Variables359988 -Node: Assignment Options361898 -Node: Conversion364369 -Node: Strings And Numbers364893 -Ref: Strings And Numbers-Footnote-1367956 -Node: Locale influences conversions368065 -Ref: table-locale-affects370823 -Node: All Operators371441 -Node: Arithmetic Ops372070 -Node: Concatenation374786 -Ref: Concatenation-Footnote-1377633 -Node: Assignment Ops377740 -Ref: table-assign-ops382731 -Node: Increment Ops384044 -Node: Truth Values and Conditions387504 -Node: Truth Values388578 -Node: Typing and Comparison389626 -Node: Variable Typing390446 -Ref: Variable Typing-Footnote-1396909 -Ref: Variable Typing-Footnote-2396981 -Node: Comparison Operators397058 -Ref: table-relational-ops397477 -Node: POSIX String Comparison400972 -Ref: POSIX String Comparison-Footnote-1402667 -Ref: POSIX String Comparison-Footnote-2402806 -Node: Boolean Ops402890 -Ref: Boolean Ops-Footnote-1407372 -Node: Conditional Exp407464 -Node: Function Calls409200 -Node: Precedence413077 -Node: Locales416736 -Node: Expressions Summary418368 -Node: Patterns and Actions420941 -Node: Pattern Overview422061 -Node: Regexp Patterns423738 -Node: Expression Patterns424280 -Node: Ranges428061 -Node: BEGIN/END431169 -Node: Using BEGIN/END431930 -Ref: Using BEGIN/END-Footnote-1434684 -Node: I/O And BEGIN/END434790 -Node: BEGINFILE/ENDFILE437103 -Node: Empty440334 -Node: Using Shell Variables440651 -Node: Action Overview442925 -Node: Statements445250 -Node: If Statement447098 -Node: While Statement448593 -Node: Do Statement450621 -Node: For Statement451769 -Node: Switch Statement454940 -Node: Break Statement457381 -Node: Continue Statement459473 -Node: Next Statement461300 -Node: Nextfile Statement463683 -Node: Exit Statement466372 -Node: Built-in Variables468775 -Node: User-modified469908 -Node: Auto-set477675 -Ref: Auto-set-Footnote-1494482 -Ref: Auto-set-Footnote-2494688 -Node: ARGC and ARGV494744 -Node: Pattern Action Summary498957 -Node: Arrays501387 -Node: Array Basics502716 -Node: Array Intro503560 -Ref: figure-array-elements505535 -Ref: Array Intro-Footnote-1508239 -Node: Reference to Elements508367 -Node: Assigning Elements510831 -Node: Array Example511322 -Node: Scanning an Array513081 -Node: Controlling Scanning516103 -Ref: Controlling Scanning-Footnote-1522559 -Node: Numeric Array Subscripts522875 -Node: Uninitialized Subscripts525059 -Node: Delete526678 -Ref: Delete-Footnote-1529430 -Node: Multidimensional529487 -Node: Multiscanning532582 -Node: Arrays of Arrays534173 -Node: Arrays Summary538941 -Node: Functions541034 -Node: Built-in542072 -Node: Calling Built-in543153 -Node: Numeric Functions545149 -Ref: Numeric Functions-Footnote-1549177 -Ref: Numeric Functions-Footnote-2549825 -Ref: Numeric Functions-Footnote-3549873 -Node: String Functions550145 -Ref: String Functions-Footnote-1574660 -Ref: String Functions-Footnote-2574788 -Ref: String Functions-Footnote-3575036 -Node: Gory Details575123 -Ref: table-sub-escapes576914 -Ref: table-sub-proposed578433 -Ref: table-posix-sub579796 -Ref: table-gensub-escapes581337 -Ref: Gory Details-Footnote-1582160 -Node: I/O Functions582314 -Ref: table-system-return-values588768 -Ref: I/O Functions-Footnote-1590848 -Ref: I/O Functions-Footnote-2590996 -Node: Time Functions591116 -Ref: Time Functions-Footnote-1601787 -Ref: Time Functions-Footnote-2601855 -Ref: Time Functions-Footnote-3602013 -Ref: Time Functions-Footnote-4602124 -Ref: Time Functions-Footnote-5602236 -Ref: Time Functions-Footnote-6602463 -Node: Bitwise Functions602729 -Ref: table-bitwise-ops603323 -Ref: Bitwise Functions-Footnote-1609386 -Ref: Bitwise Functions-Footnote-2609559 -Node: Type Functions609750 -Node: I18N Functions612613 -Node: User-defined614264 -Node: Definition Syntax615076 -Ref: Definition Syntax-Footnote-1620770 -Node: Function Example620841 -Ref: Function Example-Footnote-1623763 -Node: Function Calling623785 -Node: Calling A Function624373 -Node: Variable Scope625331 -Node: Pass By Value/Reference628325 -Node: Function Caveats630969 -Ref: Function Caveats-Footnote-1633016 -Node: Return Statement633136 -Node: Dynamic Typing636115 -Node: Indirect Calls637045 -Ref: Indirect Calls-Footnote-1647297 -Node: Functions Summary647425 -Node: Library Functions650130 -Ref: Library Functions-Footnote-1653737 -Ref: Library Functions-Footnote-2653880 -Node: Library Names654051 -Ref: Library Names-Footnote-1657718 -Ref: Library Names-Footnote-2657941 -Node: General Functions658027 -Node: Strtonum Function659209 -Node: Assert Function662231 -Node: Round Function665557 -Node: Cliff Random Function667097 -Node: Ordinal Functions668113 -Ref: Ordinal Functions-Footnote-1671176 -Ref: Ordinal Functions-Footnote-2671428 -Node: Join Function671638 -Ref: Join Function-Footnote-1673408 -Node: Getlocaltime Function673608 -Node: Readfile Function677350 -Node: Shell Quoting679327 -Node: Isnumeric Function680755 -Node: Data File Management682143 -Node: Filetrans Function682775 -Node: Rewind Function686871 -Node: File Checking688780 -Ref: File Checking-Footnote-1690114 -Node: Empty Files690315 -Node: Ignoring Assigns692294 -Node: Getopt Function693844 -Ref: Getopt Function-Footnote-1709067 -Node: Passwd Functions709267 -Ref: Passwd Functions-Footnote-1718106 -Node: Group Functions718194 -Ref: Group Functions-Footnote-1726092 -Node: Walking Arrays726299 -Node: Library Functions Summary729307 -Node: Library Exercises730713 -Node: Sample Programs731178 -Node: Running Examples731948 -Node: Clones732676 -Node: Cut Program733900 -Node: Egrep Program744040 -Node: Id Program753041 -Node: Split Program762988 -Ref: Split Program-Footnote-1772881 -Node: Tee Program773054 -Node: Uniq Program775844 -Node: Wc Program783432 -Node: Bytes vs. Characters783819 -Node: Using extensions785367 -Node: wc program786121 -Node: Miscellaneous Programs790986 -Node: Dupword Program792199 -Node: Alarm Program794229 -Node: Translate Program799084 -Ref: Translate Program-Footnote-1803649 -Node: Labels Program803919 -Ref: Labels Program-Footnote-1807270 -Node: Word Sorting807354 -Node: History Sorting811426 -Node: Extract Program813651 -Node: Simple Sed821705 -Node: Igawk Program824779 -Ref: Igawk Program-Footnote-1839110 -Ref: Igawk Program-Footnote-2839312 -Ref: Igawk Program-Footnote-3839434 -Node: Anagram Program839549 -Node: Signature Program842611 -Node: Programs Summary843858 -Node: Programs Exercises845072 -Ref: Programs Exercises-Footnote-1849202 -Node: Advanced Features849288 -Node: Nondecimal Data851355 -Node: Array Sorting852946 -Node: Controlling Array Traversal853646 -Ref: Controlling Array Traversal-Footnote-1862014 -Node: Array Sorting Functions862132 -Ref: Array Sorting Functions-Footnote-1867506 -Node: Two-way I/O867702 -Ref: Two-way I/O-Footnote-1875428 -Ref: Two-way I/O-Footnote-2875615 -Node: TCP/IP Networking875697 -Node: Profiling878815 -Node: Extension Philosophy888124 -Node: Advanced Features Summary889603 -Node: Internationalization891618 -Node: I18N and L10N893292 -Node: Explaining gettext893979 -Ref: Explaining gettext-Footnote-1899871 -Ref: Explaining gettext-Footnote-2900056 -Node: Programmer i18n900221 -Ref: Programmer i18n-Footnote-1905170 -Node: Translator i18n905219 -Node: String Extraction906013 -Ref: String Extraction-Footnote-1907145 -Node: Printf Ordering907231 -Ref: Printf Ordering-Footnote-1910017 -Node: I18N Portability910081 -Ref: I18N Portability-Footnote-1912537 -Node: I18N Example912600 -Ref: I18N Example-Footnote-1915875 -Ref: I18N Example-Footnote-2915948 -Node: Gawk I18N916057 -Node: I18N Summary916706 -Node: Debugger918047 -Node: Debugging919047 -Node: Debugging Concepts919488 -Node: Debugging Terms921297 -Node: Awk Debugging923872 -Ref: Awk Debugging-Footnote-1924817 -Node: Sample Debugging Session924949 -Node: Debugger Invocation925483 -Node: Finding The Bug926869 -Node: List of Debugger Commands933343 -Node: Breakpoint Control934676 -Node: Debugger Execution Control938370 -Node: Viewing And Changing Data941732 -Node: Execution Stack945273 -Node: Debugger Info946910 -Node: Miscellaneous Debugger Commands950981 -Node: Readline Support956043 -Node: Limitations956939 -Node: Debugging Summary959493 -Node: Namespaces960772 -Node: Global Namespace961883 -Node: Qualified Names963281 -Node: Default Namespace964280 -Node: Changing The Namespace965021 -Node: Naming Rules966635 -Node: Internal Name Management968483 -Node: Namespace Example969525 -Node: Namespace And Features972087 -Node: Namespace Summary973522 -Node: Arbitrary Precision Arithmetic974999 -Node: Computer Arithmetic976486 -Ref: table-numeric-ranges980252 -Ref: table-floating-point-ranges980745 -Ref: Computer Arithmetic-Footnote-1981403 -Node: Math Definitions981460 -Ref: table-ieee-formats984776 -Ref: Math Definitions-Footnote-1985379 -Node: MPFR features985484 -Node: FP Math Caution987202 -Ref: FP Math Caution-Footnote-1988274 -Node: Inexactness of computations988643 -Node: Inexact representation989603 -Node: Comparing FP Values990963 -Node: Errors accumulate992204 -Node: Getting Accuracy993637 -Node: Try To Round996347 -Node: Setting precision997246 -Ref: table-predefined-precision-strings997943 -Node: Setting the rounding mode999773 -Ref: table-gawk-rounding-modes1000147 -Ref: Setting the rounding mode-Footnote-11004078 -Node: Arbitrary Precision Integers1004257 -Ref: Arbitrary Precision Integers-Footnote-11007432 -Node: Checking for MPFR1007581 -Node: POSIX Floating Point Problems1009055 -Ref: POSIX Floating Point Problems-Footnote-11013340 -Node: Floating point summary1013378 -Node: Dynamic Extensions1015568 -Node: Extension Intro1017121 -Node: Plugin License1018387 -Node: Extension Mechanism Outline1019184 -Ref: figure-load-extension1019623 -Ref: figure-register-new-function1021188 -Ref: figure-call-new-function1022280 -Node: Extension API Description1024342 -Node: Extension API Functions Introduction1026055 -Ref: table-api-std-headers1027891 -Node: General Data Types1032140 -Ref: General Data Types-Footnote-11040770 -Node: Memory Allocation Functions1041069 -Ref: Memory Allocation Functions-Footnote-11045570 -Node: Constructor Functions1045669 -Node: API Ownership of MPFR and GMP Values1049135 -Node: Registration Functions1050448 -Node: Extension Functions1051148 -Node: Exit Callback Functions1056470 -Node: Extension Version String1057720 -Node: Input Parsers1058383 -Node: Output Wrappers1071104 -Node: Two-way processors1075616 -Node: Printing Messages1077881 -Ref: Printing Messages-Footnote-11079052 -Node: Updating ERRNO1079205 -Node: Requesting Values1079944 -Ref: table-value-types-returned1080681 -Node: Accessing Parameters1081617 -Node: Symbol Table Access1082854 -Node: Symbol table by name1083366 -Ref: Symbol table by name-Footnote-11086390 -Node: Symbol table by cookie1086518 -Ref: Symbol table by cookie-Footnote-11090703 -Node: Cached values1090767 -Ref: Cached values-Footnote-11094303 -Node: Array Manipulation1094456 -Ref: Array Manipulation-Footnote-11095547 -Node: Array Data Types1095584 -Ref: Array Data Types-Footnote-11098242 -Node: Array Functions1098334 -Node: Flattening Arrays1102832 -Node: Creating Arrays1109808 -Node: Redirection API1114575 -Node: Extension API Variables1117408 -Node: Extension Versioning1118119 -Ref: gawk-api-version1118548 -Node: Extension GMP/MPFR Versioning1120279 -Node: Extension API Informational Variables1121907 -Node: Extension API Boilerplate1122980 -Node: Changes from API V11126954 -Node: Finding Extensions1128526 -Node: Extension Example1129085 -Node: Internal File Description1129883 -Node: Internal File Ops1133963 -Ref: Internal File Ops-Footnote-11145313 -Node: Using Internal File Ops1145453 -Ref: Using Internal File Ops-Footnote-11147836 -Node: Extension Samples1148110 -Node: Extension Sample File Functions1149639 -Node: Extension Sample Fnmatch1157288 -Node: Extension Sample Fork1158775 -Node: Extension Sample Inplace1159993 -Node: Extension Sample Ord1163619 -Node: Extension Sample Readdir1164455 -Ref: table-readdir-file-types1165344 -Node: Extension Sample Revout1166411 -Node: Extension Sample Rev2way1167000 -Node: Extension Sample Read write array1167740 -Node: Extension Sample Readfile1169682 -Node: Extension Sample Time1170777 -Node: Extension Sample API Tests1172529 -Node: gawkextlib1173021 -Node: Extension summary1175939 -Node: Extension Exercises1179641 -Node: Language History1180883 -Node: V7/SVR3.11182539 -Node: SVR41184691 -Node: POSIX1186125 -Node: BTL1187506 -Node: POSIX/GNU1188235 -Node: Feature History1194013 -Node: Common Extensions1211188 -Node: Ranges and Locales1212471 -Ref: Ranges and Locales-Footnote-11217087 -Ref: Ranges and Locales-Footnote-21217114 -Ref: Ranges and Locales-Footnote-31217349 -Node: Contributors1217572 -Node: History summary1223569 -Node: Installation1224949 -Node: Gawk Distribution1225893 -Node: Getting1226377 -Node: Extracting1227340 -Node: Distribution contents1228978 -Node: Unix Installation1235458 -Node: Quick Installation1236140 -Node: Compiling with MPFR1238621 -Node: Shell Startup Files1239313 -Node: Additional Configuration Options1240402 -Node: Configuration Philosophy1242717 -Node: Non-Unix Installation1245086 -Node: PC Installation1245546 -Node: PC Binary Installation1246384 -Node: PC Compiling1246819 -Node: PC Using1247936 -Node: Cygwin1251489 -Node: MSYS1252713 -Node: VMS Installation1253315 -Node: VMS Compilation1254034 -Ref: VMS Compilation-Footnote-11255263 -Node: VMS Dynamic Extensions1255321 -Node: VMS Installation Details1257006 -Node: VMS Running1259268 -Node: VMS GNV1263547 -Node: Bugs1264261 -Node: Bug definition1265141 -Node: Bug address1267645 -Node: Usenet1271033 -Node: Performance bugs1272042 -Node: Asking for help1274963 -Node: Maintainers1276925 -Node: Other Versions1278119 -Node: Installation summary1285971 -Node: Notes1287335 -Node: Compatibility Mode1288129 -Node: Additions1288911 -Node: Accessing The Source1289836 -Node: Adding Code1291273 -Node: New Ports1297492 -Node: Derived Files1301867 -Ref: Derived Files-Footnote-11307527 -Ref: Derived Files-Footnote-21307562 -Ref: Derived Files-Footnote-31308160 -Node: Future Extensions1308274 -Node: Implementation Limitations1308932 -Node: Extension Design1310142 -Node: Old Extension Problems1311286 -Ref: Old Extension Problems-Footnote-11312804 -Node: Extension New Mechanism Goals1312861 -Ref: Extension New Mechanism Goals-Footnote-11316225 -Node: Extension Other Design Decisions1316414 -Node: Extension Future Growth1318527 -Node: Notes summary1319133 -Node: Basic Concepts1320291 -Node: Basic High Level1320972 -Ref: figure-general-flow1321254 -Ref: figure-process-flow1321939 -Ref: Basic High Level-Footnote-11325240 -Node: Basic Data Typing1325425 -Node: Glossary1328753 -Node: Copying1360638 -Node: GNU Free Documentation License1398181 -Node: Index1423301 +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: Variables359731 +Node: Using Variables360388 +Node: Assignment Options362298 +Node: Conversion364769 +Node: Strings And Numbers365293 +Ref: Strings And Numbers-Footnote-1368356 +Node: Locale influences conversions368465 +Ref: table-locale-affects371223 +Node: All Operators371841 +Node: Arithmetic Ops372470 +Node: Concatenation375186 +Ref: Concatenation-Footnote-1378033 +Node: Assignment Ops378140 +Ref: table-assign-ops383131 +Node: Increment Ops384444 +Node: Truth Values and Conditions387904 +Node: Truth Values388978 +Node: Typing and Comparison390026 +Node: Variable Typing390846 +Ref: Variable Typing-Footnote-1397309 +Ref: Variable Typing-Footnote-2397381 +Node: Comparison Operators397458 +Ref: table-relational-ops397877 +Node: POSIX String Comparison401372 +Ref: POSIX String Comparison-Footnote-1403067 +Ref: POSIX String Comparison-Footnote-2403206 +Node: Boolean Ops403290 +Ref: Boolean Ops-Footnote-1407772 +Node: Conditional Exp407864 +Node: Function Calls409600 +Node: Precedence413477 +Node: Locales417136 +Node: Expressions Summary418768 +Node: Patterns and Actions421341 +Node: Pattern Overview422461 +Node: Regexp Patterns424138 +Node: Expression Patterns424680 +Node: Ranges428461 +Node: BEGIN/END431569 +Node: Using BEGIN/END432330 +Ref: Using BEGIN/END-Footnote-1435084 +Node: I/O And BEGIN/END435190 +Node: BEGINFILE/ENDFILE437503 +Node: Empty440734 +Node: Using Shell Variables441051 +Node: Action Overview443325 +Node: Statements445650 +Node: If Statement447498 +Node: While Statement448993 +Node: Do Statement451021 +Node: For Statement452169 +Node: Switch Statement455340 +Node: Break Statement457781 +Node: Continue Statement459873 +Node: Next Statement461700 +Node: Nextfile Statement464083 +Node: Exit Statement466772 +Node: Built-in Variables469175 +Node: User-modified470308 +Node: Auto-set478075 +Ref: Auto-set-Footnote-1494882 +Ref: Auto-set-Footnote-2495088 +Node: ARGC and ARGV495144 +Node: Pattern Action Summary499357 +Node: Arrays501787 +Node: Array Basics503116 +Node: Array Intro503960 +Ref: figure-array-elements505935 +Ref: Array Intro-Footnote-1508639 +Node: Reference to Elements508767 +Node: Assigning Elements511231 +Node: Array Example511722 +Node: Scanning an Array513481 +Node: Controlling Scanning516503 +Ref: Controlling Scanning-Footnote-1522959 +Node: Numeric Array Subscripts523275 +Node: Uninitialized Subscripts525459 +Node: Delete527078 +Ref: Delete-Footnote-1529830 +Node: Multidimensional529887 +Node: Multiscanning532982 +Node: Arrays of Arrays534573 +Node: Arrays Summary539341 +Node: Functions541434 +Node: Built-in542472 +Node: Calling Built-in543625 +Node: Boolean Functions545621 +Node: Numeric Functions546175 +Ref: Numeric Functions-Footnote-1550202 +Ref: Numeric Functions-Footnote-2550850 +Ref: Numeric Functions-Footnote-3550898 +Node: String Functions551170 +Ref: String Functions-Footnote-1575685 +Ref: String Functions-Footnote-2575813 +Ref: String Functions-Footnote-3576061 +Node: Gory Details576148 +Ref: table-sub-escapes577939 +Ref: table-sub-proposed579458 +Ref: table-posix-sub580821 +Ref: table-gensub-escapes582362 +Ref: Gory Details-Footnote-1583185 +Node: I/O Functions583339 +Ref: table-system-return-values589793 +Ref: I/O Functions-Footnote-1591873 +Ref: I/O Functions-Footnote-2592021 +Node: Time Functions592141 +Ref: Time Functions-Footnote-1602812 +Ref: Time Functions-Footnote-2602880 +Ref: Time Functions-Footnote-3603038 +Ref: Time Functions-Footnote-4603149 +Ref: Time Functions-Footnote-5603261 +Ref: Time Functions-Footnote-6603488 +Node: Bitwise Functions603754 +Ref: table-bitwise-ops604348 +Ref: Bitwise Functions-Footnote-1610411 +Ref: Bitwise Functions-Footnote-2610584 +Node: Type Functions610775 +Node: I18N Functions613729 +Node: User-defined615380 +Node: Definition Syntax616192 +Ref: Definition Syntax-Footnote-1621886 +Node: Function Example621957 +Ref: Function Example-Footnote-1624879 +Node: Function Calling624901 +Node: Calling A Function625489 +Node: Variable Scope626447 +Node: Pass By Value/Reference629441 +Node: Function Caveats632085 +Ref: Function Caveats-Footnote-1634132 +Node: Return Statement634252 +Node: Dynamic Typing637231 +Node: Indirect Calls638161 +Ref: Indirect Calls-Footnote-1648416 +Node: Functions Summary648544 +Node: Library Functions651249 +Ref: Library Functions-Footnote-1654856 +Ref: Library Functions-Footnote-2654999 +Node: Library Names655170 +Ref: Library Names-Footnote-1658837 +Ref: Library Names-Footnote-2659060 +Node: General Functions659146 +Node: Strtonum Function660328 +Node: Assert Function663350 +Node: Round Function666676 +Node: Cliff Random Function668216 +Node: Ordinal Functions669232 +Ref: Ordinal Functions-Footnote-1672295 +Ref: Ordinal Functions-Footnote-2672547 +Node: Join Function672757 +Ref: Join Function-Footnote-1674527 +Node: Getlocaltime Function674727 +Node: Readfile Function678469 +Node: Shell Quoting680446 +Node: Isnumeric Function681874 +Node: Data File Management683262 +Node: Filetrans Function683894 +Node: Rewind Function687990 +Node: File Checking689899 +Ref: File Checking-Footnote-1691233 +Node: Empty Files691434 +Node: Ignoring Assigns693413 +Node: Getopt Function694963 +Ref: Getopt Function-Footnote-1710186 +Node: Passwd Functions710386 +Ref: Passwd Functions-Footnote-1719225 +Node: Group Functions719313 +Ref: Group Functions-Footnote-1727211 +Node: Walking Arrays727418 +Node: Library Functions Summary730426 +Node: Library Exercises731832 +Node: Sample Programs732297 +Node: Running Examples733067 +Node: Clones733795 +Node: Cut Program735019 +Node: Egrep Program745159 +Node: Id Program754160 +Node: Split Program764107 +Ref: Split Program-Footnote-1774000 +Node: Tee Program774173 +Node: Uniq Program776963 +Node: Wc Program784551 +Node: Bytes vs. Characters784938 +Node: Using extensions786486 +Node: wc program787240 +Node: Miscellaneous Programs792105 +Node: Dupword Program793318 +Node: Alarm Program795348 +Node: Translate Program800203 +Ref: Translate Program-Footnote-1804768 +Node: Labels Program805038 +Ref: Labels Program-Footnote-1808389 +Node: Word Sorting808473 +Node: History Sorting812545 +Node: Extract Program814770 +Node: Simple Sed822824 +Node: Igawk Program825898 +Ref: Igawk Program-Footnote-1840229 +Ref: Igawk Program-Footnote-2840431 +Ref: Igawk Program-Footnote-3840553 +Node: Anagram Program840668 +Node: Signature Program843730 +Node: Programs Summary844977 +Node: Programs Exercises846191 +Ref: Programs Exercises-Footnote-1850321 +Node: Advanced Features850407 +Node: Nondecimal Data852538 +Node: Boolean Typed Values854136 +Node: Array Sorting856017 +Node: Controlling Array Traversal856722 +Ref: Controlling Array Traversal-Footnote-1865090 +Node: Array Sorting Functions865208 +Ref: Array Sorting Functions-Footnote-1870582 +Node: Two-way I/O870778 +Ref: Two-way I/O-Footnote-1878504 +Ref: Two-way I/O-Footnote-2878691 +Node: TCP/IP Networking878773 +Node: Profiling881891 +Node: Extension Philosophy891200 +Node: Advanced Features Summary892679 +Node: Internationalization894694 +Node: I18N and L10N896368 +Node: Explaining gettext897055 +Ref: Explaining gettext-Footnote-1902947 +Ref: Explaining gettext-Footnote-2903132 +Node: Programmer i18n903297 +Ref: Programmer i18n-Footnote-1908246 +Node: Translator i18n908295 +Node: String Extraction909089 +Ref: String Extraction-Footnote-1910221 +Node: Printf Ordering910307 +Ref: Printf Ordering-Footnote-1913093 +Node: I18N Portability913157 +Ref: I18N Portability-Footnote-1915613 +Node: I18N Example915676 +Ref: I18N Example-Footnote-1918951 +Ref: I18N Example-Footnote-2919024 +Node: Gawk I18N919133 +Node: I18N Summary919782 +Node: Debugger921123 +Node: Debugging922123 +Node: Debugging Concepts922564 +Node: Debugging Terms924373 +Node: Awk Debugging926948 +Ref: Awk Debugging-Footnote-1927893 +Node: Sample Debugging Session928025 +Node: Debugger Invocation928559 +Node: Finding The Bug929945 +Node: List of Debugger Commands936419 +Node: Breakpoint Control937752 +Node: Debugger Execution Control941446 +Node: Viewing And Changing Data944808 +Node: Execution Stack948349 +Node: Debugger Info949986 +Node: Miscellaneous Debugger Commands954057 +Node: Readline Support959119 +Node: Limitations960015 +Node: Debugging Summary962569 +Node: Namespaces963848 +Node: Global Namespace964959 +Node: Qualified Names966357 +Node: Default Namespace967356 +Node: Changing The Namespace968097 +Node: Naming Rules969711 +Node: Internal Name Management971559 +Node: Namespace Example972601 +Node: Namespace And Features975163 +Node: Namespace Summary976598 +Node: Arbitrary Precision Arithmetic978075 +Node: Computer Arithmetic979562 +Ref: table-numeric-ranges983328 +Ref: table-floating-point-ranges983821 +Ref: Computer Arithmetic-Footnote-1984479 +Node: Math Definitions984536 +Ref: table-ieee-formats987512 +Node: MPFR features988079 +Node: FP Math Caution989797 +Ref: FP Math Caution-Footnote-1990869 +Node: Inexactness of computations991238 +Node: Inexact representation992269 +Node: Comparing FP Values993629 +Node: Errors accumulate994870 +Node: Strange values996326 +Ref: Strange values-Footnote-1998914 +Node: Getting Accuracy999019 +Node: Try To Round1001729 +Node: Setting precision1002628 +Ref: table-predefined-precision-strings1003325 +Node: Setting the rounding mode1005155 +Ref: table-gawk-rounding-modes1005529 +Ref: Setting the rounding mode-Footnote-11009460 +Node: Arbitrary Precision Integers1009639 +Ref: Arbitrary Precision Integers-Footnote-11012814 +Node: Checking for MPFR1012963 +Node: POSIX Floating Point Problems1014437 +Ref: POSIX Floating Point Problems-Footnote-11018722 +Node: Floating point summary1018760 +Node: Dynamic Extensions1020950 +Node: Extension Intro1022503 +Node: Plugin License1023769 +Node: Extension Mechanism Outline1024566 +Ref: figure-load-extension1025005 +Ref: figure-register-new-function1026570 +Ref: figure-call-new-function1027662 +Node: Extension API Description1029724 +Node: Extension API Functions Introduction1031437 +Ref: table-api-std-headers1033273 +Node: General Data Types1037522 +Ref: General Data Types-Footnote-11046228 +Node: Memory Allocation Functions1046527 +Ref: Memory Allocation Functions-Footnote-11051028 +Node: Constructor Functions1051127 +Node: API Ownership of MPFR and GMP Values1054780 +Node: Registration Functions1056093 +Node: Extension Functions1056793 +Node: Exit Callback Functions1062115 +Node: Extension Version String1063365 +Node: Input Parsers1064028 +Node: Output Wrappers1076749 +Node: Two-way processors1081261 +Node: Printing Messages1083526 +Ref: Printing Messages-Footnote-11084697 +Node: Updating ERRNO1084850 +Node: Requesting Values1085589 +Ref: table-value-types-returned1086326 +Node: Accessing Parameters1087434 +Node: Symbol Table Access1088671 +Node: Symbol table by name1089183 +Ref: Symbol table by name-Footnote-11092207 +Node: Symbol table by cookie1092335 +Ref: Symbol table by cookie-Footnote-11096520 +Node: Cached values1096584 +Ref: Cached values-Footnote-11100120 +Node: Array Manipulation1100273 +Ref: Array Manipulation-Footnote-11101364 +Node: Array Data Types1101401 +Ref: Array Data Types-Footnote-11104059 +Node: Array Functions1104151 +Node: Flattening Arrays1108649 +Node: Creating Arrays1115625 +Node: Redirection API1120392 +Node: Extension API Variables1123225 +Node: Extension Versioning1123936 +Ref: gawk-api-version1124365 +Node: Extension GMP/MPFR Versioning1126096 +Node: Extension API Informational Variables1127724 +Node: Extension API Boilerplate1128797 +Node: Changes from API V11132771 +Node: Finding Extensions1134343 +Node: Extension Example1134902 +Node: Internal File Description1135700 +Node: Internal File Ops1139780 +Ref: Internal File Ops-Footnote-11151130 +Node: Using Internal File Ops1151270 +Ref: Using Internal File Ops-Footnote-11153653 +Node: Extension Samples1153927 +Node: Extension Sample File Functions1155456 +Node: Extension Sample Fnmatch1163105 +Node: Extension Sample Fork1164592 +Node: Extension Sample Inplace1165810 +Node: Extension Sample Ord1169436 +Node: Extension Sample Readdir1170272 +Ref: table-readdir-file-types1171161 +Node: Extension Sample Revout1172228 +Node: Extension Sample Rev2way1172817 +Node: Extension Sample Read write array1173557 +Node: Extension Sample Readfile1175499 +Node: Extension Sample Time1176594 +Node: Extension Sample API Tests1178346 +Node: gawkextlib1178838 +Node: Extension summary1181756 +Node: Extension Exercises1185458 +Node: Language History1186700 +Node: V7/SVR3.11188356 +Node: SVR41190508 +Node: POSIX1191942 +Node: BTL1193323 +Node: POSIX/GNU1194052 +Node: Feature History1199830 +Node: Common Extensions1217005 +Node: Ranges and Locales1218288 +Ref: Ranges and Locales-Footnote-11222904 +Ref: Ranges and Locales-Footnote-21222931 +Ref: Ranges and Locales-Footnote-31223166 +Node: Contributors1223389 +Node: History summary1229386 +Node: Installation1230766 +Node: Gawk Distribution1231710 +Node: Getting1232194 +Node: Extracting1233157 +Node: Distribution contents1234795 +Node: Unix Installation1241275 +Node: Quick Installation1241957 +Node: Compiling with MPFR1244438 +Node: Shell Startup Files1245130 +Node: Additional Configuration Options1246219 +Node: Configuration Philosophy1248534 +Node: Non-Unix Installation1250903 +Node: PC Installation1251363 +Node: PC Binary Installation1252201 +Node: PC Compiling1252636 +Node: PC Using1253753 +Node: Cygwin1257306 +Node: MSYS1258530 +Node: VMS Installation1259132 +Node: VMS Compilation1259851 +Ref: VMS Compilation-Footnote-11261080 +Node: VMS Dynamic Extensions1261138 +Node: VMS Installation Details1262823 +Node: VMS Running1265085 +Node: VMS GNV1269364 +Node: Bugs1270078 +Node: Bug definition1270958 +Node: Bug address1273462 +Node: Usenet1276850 +Node: Performance bugs1277859 +Node: Asking for help1280780 +Node: Maintainers1282742 +Node: Other Versions1283936 +Node: Installation summary1291788 +Node: Notes1293152 +Node: Compatibility Mode1293946 +Node: Additions1294728 +Node: Accessing The Source1295653 +Node: Adding Code1297090 +Node: New Ports1303309 +Node: Derived Files1307684 +Ref: Derived Files-Footnote-11313344 +Ref: Derived Files-Footnote-21313379 +Ref: Derived Files-Footnote-31313977 +Node: Future Extensions1314091 +Node: Implementation Limitations1314749 +Node: Extension Design1315959 +Node: Old Extension Problems1317103 +Ref: Old Extension Problems-Footnote-11318621 +Node: Extension New Mechanism Goals1318678 +Ref: Extension New Mechanism Goals-Footnote-11322042 +Node: Extension Other Design Decisions1322231 +Node: Extension Future Growth1324344 +Node: Notes summary1324950 +Node: Basic Concepts1326108 +Node: Basic High Level1326789 +Ref: figure-general-flow1327071 +Ref: figure-process-flow1327756 +Ref: Basic High Level-Footnote-11331057 +Node: Basic Data Typing1331242 +Node: Glossary1334570 +Node: Copying1366457 +Node: GNU Free Documentation License1404000 +Node: Index1429120 End Tag Table |