diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1293 |
1 files changed, 706 insertions, 587 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 398fbb61..6c46bb79 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -416,6 +416,8 @@ entitled "GNU Free Documentation License". * Getlocaltime Function:: A function to get formatted times. * Readfile Function:: A function to read an entire file at once. +* Shell Quoting:: A function to quote strings for the + shell. * Data File Management:: Functions for managing command-line data files. * Filetrans Function:: A function for handling data file @@ -6799,6 +6801,9 @@ uppercase characters converted to lowercase (*note String Functions::). The program builds up a list of command lines, using the `mv' utility to rename the files. It then sends the list to the shell for execution. + *Note Shell Quoting::, for a function that can help in generating +command lines to be fed to the shell. + File: gawk.info, Node: Special FD, Next: Special Files, Prev: Redirection, Up: Printing @@ -14181,6 +14186,63 @@ names of the two comparison functions: -| sort: <87.1 93.4 95.6 100.0> -| rsort: <100.0 95.6 93.4 87.1> + Another example where indirect functions calls are useful can be +found in processing arrays. *note Walking Arrays::, presented a simple +function for "walking" an array of arrays. That function simply +printed the name and value of each scalar array element. However, it is +easy to generalize that function, by passing in the name of a function +to call when walking an array. The modified function looks like this: + + function process_array(arr, name, process, do_arrays, i, new_name) + { + for (i in arr) { + new_name = (name "[" i "]") + if (isarray(arr[i])) { + if (do_arrays) + @process(new_name, arr[i]) + process_array(arr[i], new_name, process, do_arrays) + } else + @process(new_name, arr[i]) + } + } + + The arguments are as follows: + +`arr' + The array. + +`name' + The name of the array (a string). + +`process' + The name of the function to call. + +`do_arrays' + If this is true, the function can handle elements that are + subarrays. + + If subarrays are to be processed, that is done before walking them +further. + + When run with the following scaffolding, the function produces the +same results as does the earlier `walk_array()' function: + + BEGIN { + a[1] = 1 + a[2][1] = 21 + a[2][2] = 22 + a[3] = 3 + a[4][1][1] = 411 + a[4][2] = 42 + + process_array(a, "a", "do_print", 0) + } + + function do_print(name, element) + { + printf "%s = %s\n", name, element + } + Remember that you must supply a leading `@' in front of an indirect function call. @@ -14454,6 +14516,7 @@ programming use. * Join Function:: A function to join an array into a string. * Getlocaltime Function:: A function to get formatted times. * Readfile Function:: A function to read an entire file at once. +* Shell Quoting:: A function to quote strings for the shell. File: gawk.info, Node: Strtonum Function, Next: Assert Function, Up: General Functions @@ -14929,7 +14992,7 @@ the `getlocaltime()' function would have allowed the user to supply an optional timestamp value to use instead of the current time. -File: gawk.info, Node: Readfile Function, Prev: Getlocaltime Function, Up: General Functions +File: gawk.info, Node: Readfile Function, Next: Shell Quoting, Prev: Getlocaltime Function, Up: General Functions 10.2.8 Reading A Whole File At Once ----------------------------------- @@ -14992,6 +15055,58 @@ test would be `contents == ""'. also reads an entire file into memory. +File: gawk.info, Node: Shell Quoting, Prev: Readfile Function, Up: General Functions + +10.2.9 Quoting Strings to Pass to The Shell +------------------------------------------- + +Michael Brennan offers the following programming pattern, which he uses +frequently: + + #! /bin/sh + + awkp=' + ... + ' + + INPUT_PROGRAM | awk "$awkp" | /bin/sh + + For example, a program of his named `flac-edit' has this form: + + $ flac-edit -song="Whoope! That's Great" file.flac + + It generates the following output, which is to be piped to the shell +(`/bin/sh'): + + chmod +w file.flac + metaflac --remove-tag=TITLE file.flac + LANG=en_US.88591 metaflac --set-tag=TITLE='Whoope! That'"'"'s Great' file.flac + chmod -w file.flac + + Note the need for shell quoting. The function `shell_quote()' does +it. `SINGLE' is the one-character string `"'"' and `QSINGLE' is the +three-character string `"\"'\""'. + + # shell_quote --- quote an argument for passing to the shell + + function shell_quote(s, # parameter + SINGLE, QSINGLE, i, X, n, ret) # locals + { + if (s == "") + return "\"\"" + + SINGLE = "\x27" # single quote + QSINGLE = "\"\x27\"" + n = split(s, X, SINGLE) + + ret = SINGLE X[1] SINGLE + for (i = 2; i <= n; i++) + ret = ret QSINGLE SINGLE X[i] SINGLE + + return ret + } + + File: gawk.info, Node: Data File Management, Next: Getopt Function, Prev: General Functions, Up: Library Functions 10.3 Data File Management @@ -16094,12 +16209,12 @@ value. Here is a main program to demonstrate: When run, the program produces the following output: $ gawk -f walk_array.awk - -| a[4][1][1] = 411 - -| a[4][2] = 42 -| a[1] = 1 -| a[2][1] = 21 -| a[2][2] = 22 -| a[3] = 3 + -| a[4][1][1] = 411 + -| a[4][2] = 42 File: gawk.info, Node: Library Functions Summary, Next: Library Exercises, Prev: Walking Arrays, Up: Library Functions @@ -17604,17 +17719,17 @@ there are more characters in the "from" list than in the "to" list, the last character of the "to" list is used for the remaining characters in the "from" list. - Once upon a time, a user proposed that a transliteration function -should be added to `gawk'. The following program was written to prove -that character transliteration could be done with a user-level -function. This program is not as complete as the system `tr' utility -but it does most of the job. + Once upon a time, a user proposed adding a transliteration function +to `gawk'. The following program was written to prove that character +transliteration could be done with a user-level function. This program +is not as complete as the system `tr' utility but it does most of the +job. - The `translate' program demonstrates one of the few weaknesses of -standard `awk': dealing with individual characters is very painful, -requiring repeated use of the `substr()', `index()', and `gsub()' -built-in functions (*note String Functions::).(2) There are two -functions. The first, `stranslate()', takes three arguments: + The `translate' program was written long before `gawk' acquired the +ability to split each character in a string into separate array +elements. Thus, it makes repeated use of the `substr()', `index()', +and `gsub()' built-in functions (*note String Functions::). There are +two functions. The first, `stranslate()', takes three arguments: `from' A list of characters from which to translate. @@ -17631,10 +17746,10 @@ simple loop goes through `from', one character at a time. For each character in `from', if the character appears in `target', it is replaced with the corresponding `to' character. - The `translate()' function simply calls `stranslate()' using `$0' as -the target. The main program sets two global variables, `FROM' and -`TO', from the command line, and then changes `ARGV' so that `awk' -reads from the standard input. + The `translate()' function calls `stranslate()' using `$0' as the +target. The main program sets two global variables, `FROM' and `TO', +from the command line, and then changes `ARGV' so that `awk' reads from +the standard input. Finally, the processing rule simply calls `translate()' for each record: @@ -17711,9 +17826,6 @@ program. enclosed in square brackets (`[a-z]') and quoted, to prevent the shell from attempting a file name expansion. This is not a feature. - (2) This program was also written before `gawk' acquired the ability -to split each character in a string into separate array elements. - File: gawk.info, Node: Labels Program, Next: Word Sorting, Prev: Translate Program, Up: Miscellaneous Programs @@ -27797,7 +27909,7 @@ than 32 bits. /name=(as_is,short) Compile time macros need to be defined before the first VMS-supplied -header file is included. +header file is included, as follows: #if (__CRTL_VER >= 70200000) && !defined (__VAX) #define _LARGEFILE 1 @@ -27811,6 +27923,12 @@ header file is included. #endif #endif + If you are writing your own extensions to run on VMS, you must +supply these definitions yourself. The `config.h' file created when +building `gawk' on VMS does this for you; if instead you use that file +or a similar one, then you must remember to include it before any +VMS-supplied header files. + File: gawk.info, Node: VMS Installation Details, Next: VMS Running, Prev: VMS Dynamic Extensions, Up: VMS Installation @@ -27979,11 +28097,11 @@ B.4 Reporting Problems and Bugs please report it to the developers; we cannot promise to do anything but we might well want to fix it. - Before reporting a bug, please make sure you have actually found a -real bug. Carefully reread the documentation and see if it really says -you can do what you're trying to do. If it's not clear whether you -should be able to do something or not, report that too; it's a bug in -the documentation! + Before reporting a bug, please make sure you have really found a +genuine bug. Carefully reread the documentation and see if it says you +can do what you're trying to do. If it's not clear whether you should +be able to do something or not, report that too; it's a bug in the +documentation! Before reporting a bug or trying to fix it yourself, try to isolate it to the smallest possible `awk' program and input data file that @@ -27996,7 +28114,8 @@ really in the documentation. Please include the version number of `gawk' you are using. You can get this information with the command `gawk --version'. - Once you have a precise problem, send email to <bug-gawk@gnu.org>. + Once you have a precise problem description, send email to +<bug-gawk@gnu.org>. The `gawk' maintainers subscribe to this address and thus they will receive your bug report. Although you can send mail to the maintainers @@ -31687,7 +31806,7 @@ Index * Brown, Martin: Contributors. (line 82) * BSD-based operating systems: Glossary. (line 611) * bt debugger command (alias for backtrace): Execution Stack. (line 13) -* Buening, Andreas <1>: Bugs. (line 71) +* Buening, Andreas <1>: Bugs. (line 72) * Buening, Andreas <2>: Contributors. (line 92) * Buening, Andreas: Acknowledgments. (line 60) * buffering, input/output <1>: Two-way I/O. (line 52) @@ -31802,7 +31921,7 @@ Index * common extensions, RS as a regexp: gawk split records. (line 6) * common extensions, single character fields: Single Character Fields. (line 6) -* comp.lang.awk newsgroup: Bugs. (line 38) +* comp.lang.awk newsgroup: Bugs. (line 39) * comparison expressions: Typing and Comparison. (line 9) * comparison expressions, as patterns: Expression Patterns. (line 14) @@ -32059,7 +32178,7 @@ Index * decimal point character, locale specific: Options. (line 272) * decrement operators: Increment Ops. (line 35) * default keyword: Switch Statement. (line 6) -* Deifik, Scott <1>: Bugs. (line 71) +* Deifik, Scott <1>: Bugs. (line 72) * Deifik, Scott <2>: Contributors. (line 53) * Deifik, Scott: Acknowledgments. (line 60) * delete ARRAY: Delete. (line 39) @@ -32990,7 +33109,7 @@ Index * mail-list file: Sample Data Files. (line 6) * mailing labels, printing: Labels Program. (line 6) * mailing list, GNITS: Acknowledgments. (line 52) -* Malmberg, John <1>: Bugs. (line 71) +* Malmberg, John <1>: Bugs. (line 72) * Malmberg, John: Acknowledgments. (line 60) * Malmberg, John E.: Contributors. (line 137) * mark parity: Ordinal Functions. (line 45) @@ -33229,7 +33348,7 @@ Index (line 6) * pipe, input: Getline/Pipe. (line 9) * pipe, output: Redirection. (line 57) -* Pitts, Dave <1>: Bugs. (line 71) +* Pitts, Dave <1>: Bugs. (line 72) * Pitts, Dave: Acknowledgments. (line 60) * Plauger, P.J.: Library Functions. (line 12) * plug-in: Extension Intro. (line 6) @@ -33435,7 +33554,7 @@ Index * range expressions (regexps): Bracket Expressions. (line 6) * range patterns: Ranges. (line 6) * range patterns, line continuation and: Ranges. (line 65) -* Rankin, Pat <1>: Bugs. (line 71) +* Rankin, Pat <1>: Bugs. (line 72) * Rankin, Pat <2>: Contributors. (line 37) * Rankin, Pat <3>: Assignment Ops. (line 100) * Rankin, Pat: Acknowledgments. (line 60) @@ -33544,7 +33663,7 @@ Index * RLENGTH variable: Auto-set. (line 251) * RLENGTH variable, match() function and: String Functions. (line 227) * Robbins, Arnold <1>: Future Extensions. (line 6) -* Robbins, Arnold <2>: Bugs. (line 71) +* Robbins, Arnold <2>: Bugs. (line 72) * Robbins, Arnold <3>: Contributors. (line 144) * Robbins, Arnold <4>: General Data Types. (line 6) * Robbins, Arnold <5>: Alarm Program. (line 6) @@ -34075,7 +34194,7 @@ Index * xor: Bitwise Functions. (line 56) * XOR bitwise operation: Bitwise Functions. (line 6) * Yawitz, Efraim: Contributors. (line 131) -* Zaretskii, Eli <1>: Bugs. (line 71) +* Zaretskii, Eli <1>: Bugs. (line 72) * Zaretskii, Eli <2>: Contributors. (line 55) * Zaretskii, Eli: Acknowledgments. (line 60) * zerofile.awk program: Empty Files. (line 21) @@ -34108,557 +34227,557 @@ Index Tag Table: Node: Top1204 -Node: Foreword41980 -Node: Preface46327 -Ref: Preface-Footnote-149222 -Ref: Preface-Footnote-249329 -Ref: Preface-Footnote-349562 -Node: History49704 -Node: Names52078 -Ref: Names-Footnote-153172 -Node: This Manual53318 -Ref: This Manual-Footnote-159155 -Node: Conventions59255 -Node: Manual History61600 -Ref: Manual History-Footnote-164676 -Ref: Manual History-Footnote-264717 -Node: How To Contribute64791 -Node: Acknowledgments66030 -Node: Getting Started70778 -Node: Running gawk73212 -Node: One-shot74402 -Node: Read Terminal75627 -Node: Long77654 -Node: Executable Scripts79170 -Ref: Executable Scripts-Footnote-181959 -Node: Comments82061 -Node: Quoting84534 -Node: DOS Quoting90044 -Node: Sample Data Files90719 -Node: Very Simple93312 -Node: Two Rules98203 -Node: More Complex100089 -Node: Statements/Lines102951 -Ref: Statements/Lines-Footnote-1107407 -Node: Other Features107672 -Node: When108603 -Ref: When-Footnote-1110359 -Node: Intro Summary110424 -Node: Invoking Gawk111307 -Node: Command Line112822 -Node: Options113613 -Ref: Options-Footnote-1129508 -Node: Other Arguments129533 -Node: Naming Standard Input132494 -Node: Environment Variables133587 -Node: AWKPATH Variable134145 -Ref: AWKPATH Variable-Footnote-1136997 -Ref: AWKPATH Variable-Footnote-2137042 -Node: AWKLIBPATH Variable137302 -Node: Other Environment Variables138061 -Node: Exit Status141763 -Node: Include Files142438 -Node: Loading Shared Libraries146016 -Node: Obsolete147443 -Node: Undocumented148140 -Node: Invoking Summary148407 -Node: Regexp150073 -Node: Regexp Usage151532 -Node: Escape Sequences153565 -Node: Regexp Operators159582 -Ref: Regexp Operators-Footnote-1167017 -Ref: Regexp Operators-Footnote-2167164 -Node: Bracket Expressions167262 -Ref: table-char-classes169279 -Node: Leftmost Longest172219 -Node: Computed Regexps173521 -Node: GNU Regexp Operators176918 -Node: Case-sensitivity180624 -Ref: Case-sensitivity-Footnote-1183514 -Ref: Case-sensitivity-Footnote-2183749 -Node: Regexp Summary183857 -Node: Reading Files185326 -Node: Records187420 -Node: awk split records188152 -Node: gawk split records193066 -Ref: gawk split records-Footnote-1197605 -Node: Fields197642 -Ref: Fields-Footnote-1200440 -Node: Nonconstant Fields200526 -Ref: Nonconstant Fields-Footnote-1202756 -Node: Changing Fields202958 -Node: Field Separators208890 -Node: Default Field Splitting211594 -Node: Regexp Field Splitting212711 -Node: Single Character Fields216061 -Node: Command Line Field Separator217120 -Node: Full Line Fields220332 -Ref: Full Line Fields-Footnote-1220840 -Node: Field Splitting Summary220886 -Ref: Field Splitting Summary-Footnote-1224017 -Node: Constant Size224118 -Node: Splitting By Content228724 -Ref: Splitting By Content-Footnote-1232797 -Node: Multiple Line232837 -Ref: Multiple Line-Footnote-1238726 -Node: Getline238905 -Node: Plain Getline241116 -Node: Getline/Variable243756 -Node: Getline/File244903 -Node: Getline/Variable/File246287 -Ref: Getline/Variable/File-Footnote-1247888 -Node: Getline/Pipe247975 -Node: Getline/Variable/Pipe250658 -Node: Getline/Coprocess251789 -Node: Getline/Variable/Coprocess253041 -Node: Getline Notes253780 -Node: Getline Summary256572 -Ref: table-getline-variants256984 -Node: Read Timeout257813 -Ref: Read Timeout-Footnote-1261627 -Node: Command-line directories261685 -Node: Input Summary262589 -Node: Input Exercises265841 -Node: Printing266569 -Node: Print268346 -Node: Print Examples269803 -Node: Output Separators272582 -Node: OFMT274600 -Node: Printf275954 -Node: Basic Printf276739 -Node: Control Letters278310 -Node: Format Modifiers282294 -Node: Printf Examples288301 -Node: Redirection290783 -Node: Special FD297514 -Ref: Special FD-Footnote-1300671 -Node: Special Files300745 -Node: Other Inherited Files301361 -Node: Special Network302361 -Node: Special Caveats303222 -Node: Close Files And Pipes304173 -Ref: Close Files And Pipes-Footnote-1311352 -Ref: Close Files And Pipes-Footnote-2311500 -Node: Output Summary311650 -Node: Output Exercises312646 -Node: Expressions313326 -Node: Values314511 -Node: Constants315187 -Node: Scalar Constants315867 -Ref: Scalar Constants-Footnote-1316726 -Node: Nondecimal-numbers316976 -Node: Regexp Constants319976 -Node: Using Constant Regexps320501 -Node: Variables323639 -Node: Using Variables324294 -Node: Assignment Options326204 -Node: Conversion328079 -Node: Strings And Numbers328603 -Ref: Strings And Numbers-Footnote-1331667 -Node: Locale influences conversions331776 -Ref: table-locale-affects334491 -Node: All Operators335079 -Node: Arithmetic Ops335709 -Node: Concatenation338214 -Ref: Concatenation-Footnote-1341033 -Node: Assignment Ops341139 -Ref: table-assign-ops346122 -Node: Increment Ops347400 -Node: Truth Values and Conditions350838 -Node: Truth Values351921 -Node: Typing and Comparison352970 -Node: Variable Typing353763 -Node: Comparison Operators357415 -Ref: table-relational-ops357825 -Node: POSIX String Comparison361340 -Ref: POSIX String Comparison-Footnote-1362412 -Node: Boolean Ops362550 -Ref: Boolean Ops-Footnote-1367029 -Node: Conditional Exp367120 -Node: Function Calls368847 -Node: Precedence372727 -Node: Locales376395 -Node: Expressions Summary378026 -Node: Patterns and Actions380600 -Node: Pattern Overview381720 -Node: Regexp Patterns383399 -Node: Expression Patterns383942 -Node: Ranges387722 -Node: BEGIN/END390828 -Node: Using BEGIN/END391590 -Ref: Using BEGIN/END-Footnote-1394327 -Node: I/O And BEGIN/END394433 -Node: BEGINFILE/ENDFILE396747 -Node: Empty399648 -Node: Using Shell Variables399965 -Node: Action Overview402241 -Node: Statements404568 -Node: If Statement406416 -Node: While Statement407914 -Node: Do Statement409942 -Node: For Statement411084 -Node: Switch Statement414239 -Node: Break Statement416627 -Node: Continue Statement418668 -Node: Next Statement420493 -Node: Nextfile Statement422873 -Node: Exit Statement425503 -Node: Built-in Variables427906 -Node: User-modified429039 -Ref: User-modified-Footnote-1436719 -Node: Auto-set436781 -Ref: Auto-set-Footnote-1449638 -Ref: Auto-set-Footnote-2449843 -Node: ARGC and ARGV449899 -Node: Pattern Action Summary454103 -Node: Arrays456530 -Node: Array Basics457859 -Node: Array Intro458703 -Ref: figure-array-elements460676 -Ref: Array Intro-Footnote-1463200 -Node: Reference to Elements463328 -Node: Assigning Elements465778 -Node: Array Example466269 -Node: Scanning an Array468027 -Node: Controlling Scanning471043 -Ref: Controlling Scanning-Footnote-1476232 -Node: Numeric Array Subscripts476548 -Node: Uninitialized Subscripts478733 -Node: Delete480350 -Ref: Delete-Footnote-1483094 -Node: Multidimensional483151 -Node: Multiscanning486246 -Node: Arrays of Arrays487835 -Node: Arrays Summary492596 -Node: Functions494701 -Node: Built-in495574 -Node: Calling Built-in496652 -Node: Numeric Functions498640 -Ref: Numeric Functions-Footnote-1502662 -Ref: Numeric Functions-Footnote-2503019 -Ref: Numeric Functions-Footnote-3503067 -Node: String Functions503336 -Ref: String Functions-Footnote-1526800 -Ref: String Functions-Footnote-2526929 -Ref: String Functions-Footnote-3527177 -Node: Gory Details527264 -Ref: table-sub-escapes529045 -Ref: table-sub-proposed530565 -Ref: table-posix-sub531929 -Ref: table-gensub-escapes533469 -Ref: Gory Details-Footnote-1534301 -Node: I/O Functions534452 -Ref: I/O Functions-Footnote-1541553 -Node: Time Functions541700 -Ref: Time Functions-Footnote-1552169 -Ref: Time Functions-Footnote-2552237 -Ref: Time Functions-Footnote-3552395 -Ref: Time Functions-Footnote-4552506 -Ref: Time Functions-Footnote-5552618 -Ref: Time Functions-Footnote-6552845 -Node: Bitwise Functions553111 -Ref: table-bitwise-ops553673 -Ref: Bitwise Functions-Footnote-1557981 -Node: Type Functions558150 -Node: I18N Functions559299 -Node: User-defined560944 -Node: Definition Syntax561748 -Ref: Definition Syntax-Footnote-1567154 -Node: Function Example567223 -Ref: Function Example-Footnote-1570140 -Node: Function Caveats570162 -Node: Calling A Function570680 -Node: Variable Scope571635 -Node: Pass By Value/Reference574623 -Node: Return Statement578133 -Node: Dynamic Typing581117 -Node: Indirect Calls582046 -Ref: Indirect Calls-Footnote-1591767 -Node: Functions Summary591895 -Node: Library Functions594594 -Ref: Library Functions-Footnote-1598212 -Ref: Library Functions-Footnote-2598355 -Node: Library Names598526 -Ref: Library Names-Footnote-1601986 -Ref: Library Names-Footnote-2602206 -Node: General Functions602292 -Node: Strtonum Function603320 -Node: Assert Function606340 -Node: Round Function609664 -Node: Cliff Random Function611205 -Node: Ordinal Functions612221 -Ref: Ordinal Functions-Footnote-1615286 -Ref: Ordinal Functions-Footnote-2615538 -Node: Join Function615749 -Ref: Join Function-Footnote-1617520 -Node: Getlocaltime Function617720 -Node: Readfile Function621461 -Node: Data File Management623409 -Node: Filetrans Function624041 -Node: Rewind Function628100 -Node: File Checking629485 -Ref: File Checking-Footnote-1630813 -Node: Empty Files631014 -Node: Ignoring Assigns632993 -Node: Getopt Function634544 -Ref: Getopt Function-Footnote-1646004 -Node: Passwd Functions646207 -Ref: Passwd Functions-Footnote-1655058 -Node: Group Functions655146 -Ref: Group Functions-Footnote-1663049 -Node: Walking Arrays663262 -Node: Library Functions Summary664865 -Node: Library Exercises666266 -Node: Sample Programs667546 -Node: Running Examples668316 -Node: Clones669044 -Node: Cut Program670268 -Node: Egrep Program679998 -Ref: Egrep Program-Footnote-1687502 -Node: Id Program687612 -Node: Split Program691256 -Ref: Split Program-Footnote-1694702 -Node: Tee Program694830 -Node: Uniq Program697617 -Node: Wc Program705038 -Ref: Wc Program-Footnote-1709286 -Node: Miscellaneous Programs709378 -Node: Dupword Program710591 -Node: Alarm Program712622 -Node: Translate Program717426 -Ref: Translate Program-Footnote-1721999 -Ref: Translate Program-Footnote-2722269 -Node: Labels Program722408 -Ref: Labels Program-Footnote-1725757 -Node: Word Sorting725841 -Node: History Sorting729911 -Node: Extract Program731747 -Node: Simple Sed739279 -Node: Igawk Program742341 -Ref: Igawk Program-Footnote-1756667 -Ref: Igawk Program-Footnote-2756868 -Ref: Igawk Program-Footnote-3756990 -Node: Anagram Program757105 -Node: Signature Program760167 -Node: Programs Summary761414 -Node: Programs Exercises762607 -Ref: Programs Exercises-Footnote-1766738 -Node: Advanced Features766829 -Node: Nondecimal Data768777 -Node: Array Sorting770367 -Node: Controlling Array Traversal771064 -Ref: Controlling Array Traversal-Footnote-1779395 -Node: Array Sorting Functions779513 -Ref: Array Sorting Functions-Footnote-1783405 -Node: Two-way I/O783599 -Ref: Two-way I/O-Footnote-1788543 -Ref: Two-way I/O-Footnote-2788729 -Node: TCP/IP Networking788811 -Node: Profiling791688 -Node: Advanced Features Summary799232 -Node: Internationalization801165 -Node: I18N and L10N802645 -Node: Explaining gettext803331 -Ref: Explaining gettext-Footnote-1808360 -Ref: Explaining gettext-Footnote-2808544 -Node: Programmer i18n808709 -Ref: Programmer i18n-Footnote-1813575 -Node: Translator i18n813624 -Node: String Extraction814418 -Ref: String Extraction-Footnote-1815549 -Node: Printf Ordering815635 -Ref: Printf Ordering-Footnote-1818421 -Node: I18N Portability818485 -Ref: I18N Portability-Footnote-1820934 -Node: I18N Example820997 -Ref: I18N Example-Footnote-1823797 -Node: Gawk I18N823869 -Node: I18N Summary824507 -Node: Debugger825846 -Node: Debugging826868 -Node: Debugging Concepts827309 -Node: Debugging Terms829166 -Node: Awk Debugging831741 -Node: Sample Debugging Session832633 -Node: Debugger Invocation833153 -Node: Finding The Bug834537 -Node: List of Debugger Commands841012 -Node: Breakpoint Control842344 -Node: Debugger Execution Control846036 -Node: Viewing And Changing Data849400 -Node: Execution Stack852765 -Node: Debugger Info854403 -Node: Miscellaneous Debugger Commands858420 -Node: Readline Support863612 -Node: Limitations864504 -Node: Debugging Summary866601 -Node: Arbitrary Precision Arithmetic867769 -Node: Computer Arithmetic869185 -Ref: table-numeric-ranges872786 -Ref: Computer Arithmetic-Footnote-1873645 -Node: Math Definitions873702 -Ref: table-ieee-formats876989 -Ref: Math Definitions-Footnote-1877593 -Node: MPFR features877698 -Node: FP Math Caution879367 -Ref: FP Math Caution-Footnote-1880417 -Node: Inexactness of computations880786 -Node: Inexact representation881734 -Node: Comparing FP Values883089 -Node: Errors accumulate884162 -Node: Getting Accuracy885595 -Node: Try To Round888254 -Node: Setting precision889153 -Ref: table-predefined-precision-strings889837 -Node: Setting the rounding mode891631 -Ref: table-gawk-rounding-modes891995 -Ref: Setting the rounding mode-Footnote-1895449 -Node: Arbitrary Precision Integers895628 -Ref: Arbitrary Precision Integers-Footnote-1898619 -Node: POSIX Floating Point Problems898768 -Ref: POSIX Floating Point Problems-Footnote-1902644 -Node: Floating point summary902682 -Node: Dynamic Extensions904874 -Node: Extension Intro906426 -Node: Plugin License907692 -Node: Extension Mechanism Outline908489 -Ref: figure-load-extension908917 -Ref: figure-register-new-function910397 -Ref: figure-call-new-function911401 -Node: Extension API Description913387 -Node: Extension API Functions Introduction914837 -Node: General Data Types919673 -Ref: General Data Types-Footnote-1925360 -Node: Memory Allocation Functions925659 -Ref: Memory Allocation Functions-Footnote-1928489 -Node: Constructor Functions928585 -Node: Registration Functions930319 -Node: Extension Functions931004 -Node: Exit Callback Functions933300 -Node: Extension Version String934548 -Node: Input Parsers935198 -Node: Output Wrappers945013 -Node: Two-way processors949529 -Node: Printing Messages951733 -Ref: Printing Messages-Footnote-1952810 -Node: Updating `ERRNO'952962 -Node: Requesting Values953702 -Ref: table-value-types-returned954430 -Node: Accessing Parameters955388 -Node: Symbol Table Access956619 -Node: Symbol table by name957133 -Node: Symbol table by cookie959113 -Ref: Symbol table by cookie-Footnote-1963252 -Node: Cached values963315 -Ref: Cached values-Footnote-1966819 -Node: Array Manipulation966910 -Ref: Array Manipulation-Footnote-1968008 -Node: Array Data Types968047 -Ref: Array Data Types-Footnote-1970704 -Node: Array Functions970796 -Node: Flattening Arrays974650 -Node: Creating Arrays981537 -Node: Extension API Variables986304 -Node: Extension Versioning986940 -Node: Extension API Informational Variables988841 -Node: Extension API Boilerplate989929 -Node: Finding Extensions993745 -Node: Extension Example994305 -Node: Internal File Description995077 -Node: Internal File Ops999144 -Ref: Internal File Ops-Footnote-11010802 -Node: Using Internal File Ops1010942 -Ref: Using Internal File Ops-Footnote-11013325 -Node: Extension Samples1013598 -Node: Extension Sample File Functions1015122 -Node: Extension Sample Fnmatch1022724 -Node: Extension Sample Fork1024206 -Node: Extension Sample Inplace1025419 -Node: Extension Sample Ord1027094 -Node: Extension Sample Readdir1027930 -Ref: table-readdir-file-types1028786 -Node: Extension Sample Revout1029597 -Node: Extension Sample Rev2way1030188 -Node: Extension Sample Read write array1030929 -Node: Extension Sample Readfile1032868 -Node: Extension Sample Time1033963 -Node: Extension Sample API Tests1035312 -Node: gawkextlib1035803 -Node: Extension summary1038453 -Node: Extension Exercises1042135 -Node: Language History1042857 -Node: V7/SVR3.11044514 -Node: SVR41046695 -Node: POSIX1048140 -Node: BTL1049529 -Node: POSIX/GNU1050263 -Node: Feature History1055832 -Node: Common Extensions1068923 -Node: Ranges and Locales1070247 -Ref: Ranges and Locales-Footnote-11074886 -Ref: Ranges and Locales-Footnote-21074913 -Ref: Ranges and Locales-Footnote-31075147 -Node: Contributors1075368 -Node: History summary1080908 -Node: Installation1082277 -Node: Gawk Distribution1083233 -Node: Getting1083717 -Node: Extracting1084541 -Node: Distribution contents1086183 -Node: Unix Installation1091900 -Node: Quick Installation1092517 -Node: Additional Configuration Options1094948 -Node: Configuration Philosophy1096688 -Node: Non-Unix Installation1099039 -Node: PC Installation1099497 -Node: PC Binary Installation1100823 -Node: PC Compiling1102671 -Ref: PC Compiling-Footnote-11105692 -Node: PC Testing1105797 -Node: PC Using1106973 -Node: Cygwin1111088 -Node: MSYS1111911 -Node: VMS Installation1112409 -Node: VMS Compilation1113201 -Ref: VMS Compilation-Footnote-11114423 -Node: VMS Dynamic Extensions1114481 -Node: VMS Installation Details1115854 -Node: VMS Running1118106 -Node: VMS GNV1120947 -Node: VMS Old Gawk1121676 -Node: Bugs1122146 -Node: Other Versions1126110 -Node: Installation summary1132323 -Node: Notes1133379 -Node: Compatibility Mode1134244 -Node: Additions1135026 -Node: Accessing The Source1135951 -Node: Adding Code1137387 -Node: New Ports1143559 -Node: Derived Files1148040 -Ref: Derived Files-Footnote-11153515 -Ref: Derived Files-Footnote-21153549 -Ref: Derived Files-Footnote-31154145 -Node: Future Extensions1154259 -Node: Implementation Limitations1154865 -Node: Extension Design1156113 -Node: Old Extension Problems1157267 -Ref: Old Extension Problems-Footnote-11158784 -Node: Extension New Mechanism Goals1158841 -Ref: Extension New Mechanism Goals-Footnote-11162201 -Node: Extension Other Design Decisions1162390 -Node: Extension Future Growth1164498 -Node: Old Extension Mechanism1165334 -Node: Notes summary1167096 -Node: Basic Concepts1168282 -Node: Basic High Level1168963 -Ref: figure-general-flow1169235 -Ref: figure-process-flow1169834 -Ref: Basic High Level-Footnote-11173063 -Node: Basic Data Typing1173248 -Node: Glossary1176576 -Node: Copying1201734 -Node: GNU Free Documentation License1239290 -Node: Index1264426 +Node: Foreword42103 +Node: Preface46450 +Ref: Preface-Footnote-149345 +Ref: Preface-Footnote-249452 +Ref: Preface-Footnote-349685 +Node: History49827 +Node: Names52201 +Ref: Names-Footnote-153295 +Node: This Manual53441 +Ref: This Manual-Footnote-159278 +Node: Conventions59378 +Node: Manual History61723 +Ref: Manual History-Footnote-164799 +Ref: Manual History-Footnote-264840 +Node: How To Contribute64914 +Node: Acknowledgments66153 +Node: Getting Started70901 +Node: Running gawk73335 +Node: One-shot74525 +Node: Read Terminal75750 +Node: Long77777 +Node: Executable Scripts79293 +Ref: Executable Scripts-Footnote-182082 +Node: Comments82184 +Node: Quoting84657 +Node: DOS Quoting90167 +Node: Sample Data Files90842 +Node: Very Simple93435 +Node: Two Rules98326 +Node: More Complex100212 +Node: Statements/Lines103074 +Ref: Statements/Lines-Footnote-1107530 +Node: Other Features107795 +Node: When108726 +Ref: When-Footnote-1110482 +Node: Intro Summary110547 +Node: Invoking Gawk111430 +Node: Command Line112945 +Node: Options113736 +Ref: Options-Footnote-1129631 +Node: Other Arguments129656 +Node: Naming Standard Input132617 +Node: Environment Variables133710 +Node: AWKPATH Variable134268 +Ref: AWKPATH Variable-Footnote-1137120 +Ref: AWKPATH Variable-Footnote-2137165 +Node: AWKLIBPATH Variable137425 +Node: Other Environment Variables138184 +Node: Exit Status141886 +Node: Include Files142561 +Node: Loading Shared Libraries146139 +Node: Obsolete147566 +Node: Undocumented148263 +Node: Invoking Summary148530 +Node: Regexp150196 +Node: Regexp Usage151655 +Node: Escape Sequences153688 +Node: Regexp Operators159705 +Ref: Regexp Operators-Footnote-1167140 +Ref: Regexp Operators-Footnote-2167287 +Node: Bracket Expressions167385 +Ref: table-char-classes169402 +Node: Leftmost Longest172342 +Node: Computed Regexps173644 +Node: GNU Regexp Operators177041 +Node: Case-sensitivity180747 +Ref: Case-sensitivity-Footnote-1183637 +Ref: Case-sensitivity-Footnote-2183872 +Node: Regexp Summary183980 +Node: Reading Files185449 +Node: Records187543 +Node: awk split records188275 +Node: gawk split records193189 +Ref: gawk split records-Footnote-1197728 +Node: Fields197765 +Ref: Fields-Footnote-1200563 +Node: Nonconstant Fields200649 +Ref: Nonconstant Fields-Footnote-1202879 +Node: Changing Fields203081 +Node: Field Separators209013 +Node: Default Field Splitting211717 +Node: Regexp Field Splitting212834 +Node: Single Character Fields216184 +Node: Command Line Field Separator217243 +Node: Full Line Fields220455 +Ref: Full Line Fields-Footnote-1220963 +Node: Field Splitting Summary221009 +Ref: Field Splitting Summary-Footnote-1224140 +Node: Constant Size224241 +Node: Splitting By Content228847 +Ref: Splitting By Content-Footnote-1232920 +Node: Multiple Line232960 +Ref: Multiple Line-Footnote-1238849 +Node: Getline239028 +Node: Plain Getline241239 +Node: Getline/Variable243879 +Node: Getline/File245026 +Node: Getline/Variable/File246410 +Ref: Getline/Variable/File-Footnote-1248011 +Node: Getline/Pipe248098 +Node: Getline/Variable/Pipe250781 +Node: Getline/Coprocess251912 +Node: Getline/Variable/Coprocess253164 +Node: Getline Notes253903 +Node: Getline Summary256695 +Ref: table-getline-variants257107 +Node: Read Timeout257936 +Ref: Read Timeout-Footnote-1261750 +Node: Command-line directories261808 +Node: Input Summary262712 +Node: Input Exercises265964 +Node: Printing266692 +Node: Print268469 +Node: Print Examples269926 +Node: Output Separators272705 +Node: OFMT274723 +Node: Printf276077 +Node: Basic Printf276862 +Node: Control Letters278433 +Node: Format Modifiers282417 +Node: Printf Examples288424 +Node: Redirection290906 +Node: Special FD297745 +Ref: Special FD-Footnote-1300902 +Node: Special Files300976 +Node: Other Inherited Files301592 +Node: Special Network302592 +Node: Special Caveats303453 +Node: Close Files And Pipes304404 +Ref: Close Files And Pipes-Footnote-1311583 +Ref: Close Files And Pipes-Footnote-2311731 +Node: Output Summary311881 +Node: Output Exercises312877 +Node: Expressions313557 +Node: Values314742 +Node: Constants315418 +Node: Scalar Constants316098 +Ref: Scalar Constants-Footnote-1316957 +Node: Nondecimal-numbers317207 +Node: Regexp Constants320207 +Node: Using Constant Regexps320732 +Node: Variables323870 +Node: Using Variables324525 +Node: Assignment Options326435 +Node: Conversion328310 +Node: Strings And Numbers328834 +Ref: Strings And Numbers-Footnote-1331898 +Node: Locale influences conversions332007 +Ref: table-locale-affects334722 +Node: All Operators335310 +Node: Arithmetic Ops335940 +Node: Concatenation338445 +Ref: Concatenation-Footnote-1341264 +Node: Assignment Ops341370 +Ref: table-assign-ops346353 +Node: Increment Ops347631 +Node: Truth Values and Conditions351069 +Node: Truth Values352152 +Node: Typing and Comparison353201 +Node: Variable Typing353994 +Node: Comparison Operators357646 +Ref: table-relational-ops358056 +Node: POSIX String Comparison361571 +Ref: POSIX String Comparison-Footnote-1362643 +Node: Boolean Ops362781 +Ref: Boolean Ops-Footnote-1367260 +Node: Conditional Exp367351 +Node: Function Calls369078 +Node: Precedence372958 +Node: Locales376626 +Node: Expressions Summary378257 +Node: Patterns and Actions380831 +Node: Pattern Overview381951 +Node: Regexp Patterns383630 +Node: Expression Patterns384173 +Node: Ranges387953 +Node: BEGIN/END391059 +Node: Using BEGIN/END391821 +Ref: Using BEGIN/END-Footnote-1394558 +Node: I/O And BEGIN/END394664 +Node: BEGINFILE/ENDFILE396978 +Node: Empty399879 +Node: Using Shell Variables400196 +Node: Action Overview402472 +Node: Statements404799 +Node: If Statement406647 +Node: While Statement408145 +Node: Do Statement410173 +Node: For Statement411315 +Node: Switch Statement414470 +Node: Break Statement416858 +Node: Continue Statement418899 +Node: Next Statement420724 +Node: Nextfile Statement423104 +Node: Exit Statement425734 +Node: Built-in Variables428137 +Node: User-modified429270 +Ref: User-modified-Footnote-1436950 +Node: Auto-set437012 +Ref: Auto-set-Footnote-1449869 +Ref: Auto-set-Footnote-2450074 +Node: ARGC and ARGV450130 +Node: Pattern Action Summary454334 +Node: Arrays456761 +Node: Array Basics458090 +Node: Array Intro458934 +Ref: figure-array-elements460907 +Ref: Array Intro-Footnote-1463431 +Node: Reference to Elements463559 +Node: Assigning Elements466009 +Node: Array Example466500 +Node: Scanning an Array468258 +Node: Controlling Scanning471274 +Ref: Controlling Scanning-Footnote-1476463 +Node: Numeric Array Subscripts476779 +Node: Uninitialized Subscripts478964 +Node: Delete480581 +Ref: Delete-Footnote-1483325 +Node: Multidimensional483382 +Node: Multiscanning486477 +Node: Arrays of Arrays488066 +Node: Arrays Summary492827 +Node: Functions494932 +Node: Built-in495805 +Node: Calling Built-in496883 +Node: Numeric Functions498871 +Ref: Numeric Functions-Footnote-1502893 +Ref: Numeric Functions-Footnote-2503250 +Ref: Numeric Functions-Footnote-3503298 +Node: String Functions503567 +Ref: String Functions-Footnote-1527031 +Ref: String Functions-Footnote-2527160 +Ref: String Functions-Footnote-3527408 +Node: Gory Details527495 +Ref: table-sub-escapes529276 +Ref: table-sub-proposed530796 +Ref: table-posix-sub532160 +Ref: table-gensub-escapes533700 +Ref: Gory Details-Footnote-1534532 +Node: I/O Functions534683 +Ref: I/O Functions-Footnote-1541784 +Node: Time Functions541931 +Ref: Time Functions-Footnote-1552400 +Ref: Time Functions-Footnote-2552468 +Ref: Time Functions-Footnote-3552626 +Ref: Time Functions-Footnote-4552737 +Ref: Time Functions-Footnote-5552849 +Ref: Time Functions-Footnote-6553076 +Node: Bitwise Functions553342 +Ref: table-bitwise-ops553904 +Ref: Bitwise Functions-Footnote-1558212 +Node: Type Functions558381 +Node: I18N Functions559530 +Node: User-defined561175 +Node: Definition Syntax561979 +Ref: Definition Syntax-Footnote-1567385 +Node: Function Example567454 +Ref: Function Example-Footnote-1570371 +Node: Function Caveats570393 +Node: Calling A Function570911 +Node: Variable Scope571866 +Node: Pass By Value/Reference574854 +Node: Return Statement578364 +Node: Dynamic Typing581348 +Node: Indirect Calls582277 +Ref: Indirect Calls-Footnote-1593581 +Node: Functions Summary593709 +Node: Library Functions596408 +Ref: Library Functions-Footnote-1600026 +Ref: Library Functions-Footnote-2600169 +Node: Library Names600340 +Ref: Library Names-Footnote-1603800 +Ref: Library Names-Footnote-2604020 +Node: General Functions604106 +Node: Strtonum Function605209 +Node: Assert Function608229 +Node: Round Function611553 +Node: Cliff Random Function613094 +Node: Ordinal Functions614110 +Ref: Ordinal Functions-Footnote-1617175 +Ref: Ordinal Functions-Footnote-2617427 +Node: Join Function617638 +Ref: Join Function-Footnote-1619409 +Node: Getlocaltime Function619609 +Node: Readfile Function623350 +Node: Shell Quoting625320 +Node: Data File Management626721 +Node: Filetrans Function627353 +Node: Rewind Function631412 +Node: File Checking632797 +Ref: File Checking-Footnote-1634125 +Node: Empty Files634326 +Node: Ignoring Assigns636305 +Node: Getopt Function637856 +Ref: Getopt Function-Footnote-1649316 +Node: Passwd Functions649519 +Ref: Passwd Functions-Footnote-1658370 +Node: Group Functions658458 +Ref: Group Functions-Footnote-1666361 +Node: Walking Arrays666574 +Node: Library Functions Summary668177 +Node: Library Exercises669578 +Node: Sample Programs670858 +Node: Running Examples671628 +Node: Clones672356 +Node: Cut Program673580 +Node: Egrep Program683310 +Ref: Egrep Program-Footnote-1690814 +Node: Id Program690924 +Node: Split Program694568 +Ref: Split Program-Footnote-1698014 +Node: Tee Program698142 +Node: Uniq Program700929 +Node: Wc Program708350 +Ref: Wc Program-Footnote-1712598 +Node: Miscellaneous Programs712690 +Node: Dupword Program713903 +Node: Alarm Program715934 +Node: Translate Program720738 +Ref: Translate Program-Footnote-1725302 +Node: Labels Program725572 +Ref: Labels Program-Footnote-1728921 +Node: Word Sorting729005 +Node: History Sorting733075 +Node: Extract Program734911 +Node: Simple Sed742443 +Node: Igawk Program745505 +Ref: Igawk Program-Footnote-1759831 +Ref: Igawk Program-Footnote-2760032 +Ref: Igawk Program-Footnote-3760154 +Node: Anagram Program760269 +Node: Signature Program763331 +Node: Programs Summary764578 +Node: Programs Exercises765771 +Ref: Programs Exercises-Footnote-1769902 +Node: Advanced Features769993 +Node: Nondecimal Data771941 +Node: Array Sorting773531 +Node: Controlling Array Traversal774228 +Ref: Controlling Array Traversal-Footnote-1782559 +Node: Array Sorting Functions782677 +Ref: Array Sorting Functions-Footnote-1786569 +Node: Two-way I/O786763 +Ref: Two-way I/O-Footnote-1791707 +Ref: Two-way I/O-Footnote-2791893 +Node: TCP/IP Networking791975 +Node: Profiling794852 +Node: Advanced Features Summary802396 +Node: Internationalization804329 +Node: I18N and L10N805809 +Node: Explaining gettext806495 +Ref: Explaining gettext-Footnote-1811524 +Ref: Explaining gettext-Footnote-2811708 +Node: Programmer i18n811873 +Ref: Programmer i18n-Footnote-1816739 +Node: Translator i18n816788 +Node: String Extraction817582 +Ref: String Extraction-Footnote-1818713 +Node: Printf Ordering818799 +Ref: Printf Ordering-Footnote-1821585 +Node: I18N Portability821649 +Ref: I18N Portability-Footnote-1824098 +Node: I18N Example824161 +Ref: I18N Example-Footnote-1826961 +Node: Gawk I18N827033 +Node: I18N Summary827671 +Node: Debugger829010 +Node: Debugging830032 +Node: Debugging Concepts830473 +Node: Debugging Terms832330 +Node: Awk Debugging834905 +Node: Sample Debugging Session835797 +Node: Debugger Invocation836317 +Node: Finding The Bug837701 +Node: List of Debugger Commands844176 +Node: Breakpoint Control845508 +Node: Debugger Execution Control849200 +Node: Viewing And Changing Data852564 +Node: Execution Stack855929 +Node: Debugger Info857567 +Node: Miscellaneous Debugger Commands861584 +Node: Readline Support866776 +Node: Limitations867668 +Node: Debugging Summary869765 +Node: Arbitrary Precision Arithmetic870933 +Node: Computer Arithmetic872349 +Ref: table-numeric-ranges875950 +Ref: Computer Arithmetic-Footnote-1876809 +Node: Math Definitions876866 +Ref: table-ieee-formats880153 +Ref: Math Definitions-Footnote-1880757 +Node: MPFR features880862 +Node: FP Math Caution882531 +Ref: FP Math Caution-Footnote-1883581 +Node: Inexactness of computations883950 +Node: Inexact representation884898 +Node: Comparing FP Values886253 +Node: Errors accumulate887326 +Node: Getting Accuracy888759 +Node: Try To Round891418 +Node: Setting precision892317 +Ref: table-predefined-precision-strings893001 +Node: Setting the rounding mode894795 +Ref: table-gawk-rounding-modes895159 +Ref: Setting the rounding mode-Footnote-1898613 +Node: Arbitrary Precision Integers898792 +Ref: Arbitrary Precision Integers-Footnote-1901783 +Node: POSIX Floating Point Problems901932 +Ref: POSIX Floating Point Problems-Footnote-1905808 +Node: Floating point summary905846 +Node: Dynamic Extensions908038 +Node: Extension Intro909590 +Node: Plugin License910856 +Node: Extension Mechanism Outline911653 +Ref: figure-load-extension912081 +Ref: figure-register-new-function913561 +Ref: figure-call-new-function914565 +Node: Extension API Description916551 +Node: Extension API Functions Introduction918001 +Node: General Data Types922837 +Ref: General Data Types-Footnote-1928524 +Node: Memory Allocation Functions928823 +Ref: Memory Allocation Functions-Footnote-1931653 +Node: Constructor Functions931749 +Node: Registration Functions933483 +Node: Extension Functions934168 +Node: Exit Callback Functions936464 +Node: Extension Version String937712 +Node: Input Parsers938362 +Node: Output Wrappers948177 +Node: Two-way processors952693 +Node: Printing Messages954897 +Ref: Printing Messages-Footnote-1955974 +Node: Updating `ERRNO'956126 +Node: Requesting Values956866 +Ref: table-value-types-returned957594 +Node: Accessing Parameters958552 +Node: Symbol Table Access959783 +Node: Symbol table by name960297 +Node: Symbol table by cookie962277 +Ref: Symbol table by cookie-Footnote-1966416 +Node: Cached values966479 +Ref: Cached values-Footnote-1969983 +Node: Array Manipulation970074 +Ref: Array Manipulation-Footnote-1971172 +Node: Array Data Types971211 +Ref: Array Data Types-Footnote-1973868 +Node: Array Functions973960 +Node: Flattening Arrays977814 +Node: Creating Arrays984701 +Node: Extension API Variables989468 +Node: Extension Versioning990104 +Node: Extension API Informational Variables992005 +Node: Extension API Boilerplate993093 +Node: Finding Extensions996909 +Node: Extension Example997469 +Node: Internal File Description998241 +Node: Internal File Ops1002308 +Ref: Internal File Ops-Footnote-11013966 +Node: Using Internal File Ops1014106 +Ref: Using Internal File Ops-Footnote-11016489 +Node: Extension Samples1016762 +Node: Extension Sample File Functions1018286 +Node: Extension Sample Fnmatch1025888 +Node: Extension Sample Fork1027370 +Node: Extension Sample Inplace1028583 +Node: Extension Sample Ord1030258 +Node: Extension Sample Readdir1031094 +Ref: table-readdir-file-types1031950 +Node: Extension Sample Revout1032761 +Node: Extension Sample Rev2way1033352 +Node: Extension Sample Read write array1034093 +Node: Extension Sample Readfile1036032 +Node: Extension Sample Time1037127 +Node: Extension Sample API Tests1038476 +Node: gawkextlib1038967 +Node: Extension summary1041617 +Node: Extension Exercises1045299 +Node: Language History1046021 +Node: V7/SVR3.11047678 +Node: SVR41049859 +Node: POSIX1051304 +Node: BTL1052693 +Node: POSIX/GNU1053427 +Node: Feature History1058996 +Node: Common Extensions1072087 +Node: Ranges and Locales1073411 +Ref: Ranges and Locales-Footnote-11078050 +Ref: Ranges and Locales-Footnote-21078077 +Ref: Ranges and Locales-Footnote-31078311 +Node: Contributors1078532 +Node: History summary1084072 +Node: Installation1085441 +Node: Gawk Distribution1086397 +Node: Getting1086881 +Node: Extracting1087705 +Node: Distribution contents1089347 +Node: Unix Installation1095064 +Node: Quick Installation1095681 +Node: Additional Configuration Options1098112 +Node: Configuration Philosophy1099852 +Node: Non-Unix Installation1102203 +Node: PC Installation1102661 +Node: PC Binary Installation1103987 +Node: PC Compiling1105835 +Ref: PC Compiling-Footnote-11108856 +Node: PC Testing1108961 +Node: PC Using1110137 +Node: Cygwin1114252 +Node: MSYS1115075 +Node: VMS Installation1115573 +Node: VMS Compilation1116365 +Ref: VMS Compilation-Footnote-11117587 +Node: VMS Dynamic Extensions1117645 +Node: VMS Installation Details1119329 +Node: VMS Running1121581 +Node: VMS GNV1124422 +Node: VMS Old Gawk1125151 +Node: Bugs1125621 +Node: Other Versions1129591 +Node: Installation summary1135804 +Node: Notes1136860 +Node: Compatibility Mode1137725 +Node: Additions1138507 +Node: Accessing The Source1139432 +Node: Adding Code1140868 +Node: New Ports1147040 +Node: Derived Files1151521 +Ref: Derived Files-Footnote-11156996 +Ref: Derived Files-Footnote-21157030 +Ref: Derived Files-Footnote-31157626 +Node: Future Extensions1157740 +Node: Implementation Limitations1158346 +Node: Extension Design1159594 +Node: Old Extension Problems1160748 +Ref: Old Extension Problems-Footnote-11162265 +Node: Extension New Mechanism Goals1162322 +Ref: Extension New Mechanism Goals-Footnote-11165682 +Node: Extension Other Design Decisions1165871 +Node: Extension Future Growth1167979 +Node: Old Extension Mechanism1168815 +Node: Notes summary1170577 +Node: Basic Concepts1171763 +Node: Basic High Level1172444 +Ref: figure-general-flow1172716 +Ref: figure-process-flow1173315 +Ref: Basic High Level-Footnote-11176544 +Node: Basic Data Typing1176729 +Node: Glossary1180057 +Node: Copying1205215 +Node: GNU Free Documentation License1242771 +Node: Index1267907 End Tag Table |