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 47cbde92..dfa21a7b 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 @@ -6792,6 +6794,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 @@ -14197,6 +14202,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. @@ -14470,6 +14532,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 @@ -14945,7 +15008,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 ----------------------------------- @@ -15008,6 +15071,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 @@ -16110,12 +16225,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 @@ -17620,17 +17735,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. @@ -17647,10 +17762,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: @@ -17727,9 +17842,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 @@ -27839,7 +27951,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 @@ -27853,6 +27965,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 @@ -28021,11 +28139,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 @@ -28038,7 +28156,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 @@ -31729,7 +31848,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) @@ -31844,7 +31963,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) @@ -32101,7 +32220,7 @@ Index * decimal point character, locale specific: Options. (line 270) * 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) @@ -33033,7 +33152,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) @@ -33272,7 +33391,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) @@ -33478,7 +33597,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) @@ -33587,7 +33706,7 @@ Index * RLENGTH variable: Auto-set. (line 259) * 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) @@ -34118,7 +34237,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) @@ -34151,557 +34270,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-1129379 -Node: Other Arguments129404 -Node: Naming Standard Input132365 -Node: Environment Variables133458 -Node: AWKPATH Variable134016 -Ref: AWKPATH Variable-Footnote-1136868 -Ref: AWKPATH Variable-Footnote-2136913 -Node: AWKLIBPATH Variable137173 -Node: Other Environment Variables137932 -Node: Exit Status141405 -Node: Include Files142080 -Node: Loading Shared Libraries145658 -Node: Obsolete147085 -Node: Undocumented147782 -Node: Invoking Summary148049 -Node: Regexp149715 -Node: Regexp Usage151174 -Node: Escape Sequences153207 -Node: Regexp Operators159307 -Ref: Regexp Operators-Footnote-1166742 -Ref: Regexp Operators-Footnote-2166889 -Node: Bracket Expressions166987 -Ref: table-char-classes169004 -Node: Leftmost Longest171944 -Node: Computed Regexps173246 -Node: GNU Regexp Operators176643 -Node: Case-sensitivity180349 -Ref: Case-sensitivity-Footnote-1183239 -Ref: Case-sensitivity-Footnote-2183474 -Node: Regexp Summary183582 -Node: Reading Files185051 -Node: Records187145 -Node: awk split records187877 -Node: gawk split records192791 -Ref: gawk split records-Footnote-1197330 -Node: Fields197367 -Ref: Fields-Footnote-1200165 -Node: Nonconstant Fields200251 -Ref: Nonconstant Fields-Footnote-1202481 -Node: Changing Fields202683 -Node: Field Separators208615 -Node: Default Field Splitting211319 -Node: Regexp Field Splitting212436 -Node: Single Character Fields215786 -Node: Command Line Field Separator216845 -Node: Full Line Fields220057 -Ref: Full Line Fields-Footnote-1220565 -Node: Field Splitting Summary220611 -Ref: Field Splitting Summary-Footnote-1223742 -Node: Constant Size223843 -Node: Splitting By Content228449 -Ref: Splitting By Content-Footnote-1232522 -Node: Multiple Line232562 -Ref: Multiple Line-Footnote-1238451 -Node: Getline238630 -Node: Plain Getline240841 -Node: Getline/Variable243481 -Node: Getline/File244628 -Node: Getline/Variable/File246012 -Ref: Getline/Variable/File-Footnote-1247613 -Node: Getline/Pipe247700 -Node: Getline/Variable/Pipe250383 -Node: Getline/Coprocess251514 -Node: Getline/Variable/Coprocess252766 -Node: Getline Notes253505 -Node: Getline Summary256297 -Ref: table-getline-variants256709 -Node: Read Timeout257538 -Ref: Read Timeout-Footnote-1261352 -Node: Command-line directories261410 -Node: Input Summary262314 -Node: Input Exercises265566 -Node: Printing266294 -Node: Print268071 -Node: Print Examples269528 -Node: Output Separators272307 -Node: OFMT274325 -Node: Printf275679 -Node: Basic Printf276464 -Node: Control Letters278035 -Node: Format Modifiers282019 -Node: Printf Examples288026 -Node: Redirection290508 -Node: Special FD297239 -Ref: Special FD-Footnote-1300396 -Node: Special Files300470 -Node: Other Inherited Files301086 -Node: Special Network302086 -Node: Special Caveats302947 -Node: Close Files And Pipes303898 -Ref: Close Files And Pipes-Footnote-1311077 -Ref: Close Files And Pipes-Footnote-2311225 -Node: Output Summary311375 -Node: Output Exercises312371 -Node: Expressions313051 -Node: Values314236 -Node: Constants314912 -Node: Scalar Constants315592 -Ref: Scalar Constants-Footnote-1316451 -Node: Nondecimal-numbers316701 -Node: Regexp Constants319701 -Node: Using Constant Regexps320226 -Node: Variables323364 -Node: Using Variables324019 -Node: Assignment Options325929 -Node: Conversion327804 -Node: Strings And Numbers328328 -Ref: Strings And Numbers-Footnote-1331392 -Node: Locale influences conversions331501 -Ref: table-locale-affects334216 -Node: All Operators334804 -Node: Arithmetic Ops335434 -Node: Concatenation337939 -Ref: Concatenation-Footnote-1340758 -Node: Assignment Ops340864 -Ref: table-assign-ops345847 -Node: Increment Ops347125 -Node: Truth Values and Conditions350563 -Node: Truth Values351646 -Node: Typing and Comparison352695 -Node: Variable Typing353488 -Node: Comparison Operators357140 -Ref: table-relational-ops357550 -Node: POSIX String Comparison361065 -Ref: POSIX String Comparison-Footnote-1362137 -Node: Boolean Ops362275 -Ref: Boolean Ops-Footnote-1366754 -Node: Conditional Exp366845 -Node: Function Calls368572 -Node: Precedence372452 -Node: Locales376120 -Node: Expressions Summary377751 -Node: Patterns and Actions380325 -Node: Pattern Overview381445 -Node: Regexp Patterns383124 -Node: Expression Patterns383667 -Node: Ranges387447 -Node: BEGIN/END390553 -Node: Using BEGIN/END391315 -Ref: Using BEGIN/END-Footnote-1394052 -Node: I/O And BEGIN/END394158 -Node: BEGINFILE/ENDFILE396472 -Node: Empty399373 -Node: Using Shell Variables399690 -Node: Action Overview401966 -Node: Statements404293 -Node: If Statement406141 -Node: While Statement407639 -Node: Do Statement409667 -Node: For Statement410809 -Node: Switch Statement413964 -Node: Break Statement416352 -Node: Continue Statement418393 -Node: Next Statement420218 -Node: Nextfile Statement422598 -Node: Exit Statement425228 -Node: Built-in Variables427631 -Node: User-modified428764 -Ref: User-modified-Footnote-1436444 -Node: Auto-set436506 -Ref: Auto-set-Footnote-1449700 -Ref: Auto-set-Footnote-2449905 -Node: ARGC and ARGV449961 -Node: Pattern Action Summary454165 -Node: Arrays456592 -Node: Array Basics457921 -Node: Array Intro458765 -Ref: figure-array-elements460738 -Ref: Array Intro-Footnote-1463262 -Node: Reference to Elements463390 -Node: Assigning Elements465840 -Node: Array Example466331 -Node: Scanning an Array468089 -Node: Controlling Scanning471105 -Ref: Controlling Scanning-Footnote-1476294 -Node: Numeric Array Subscripts476610 -Node: Uninitialized Subscripts478795 -Node: Delete480412 -Ref: Delete-Footnote-1483156 -Node: Multidimensional483213 -Node: Multiscanning486308 -Node: Arrays of Arrays487897 -Node: Arrays Summary492658 -Node: Functions494763 -Node: Built-in495636 -Node: Calling Built-in496714 -Node: Numeric Functions498702 -Ref: Numeric Functions-Footnote-1503526 -Ref: Numeric Functions-Footnote-2503883 -Ref: Numeric Functions-Footnote-3503931 -Node: String Functions504200 -Ref: String Functions-Footnote-1527664 -Ref: String Functions-Footnote-2527793 -Ref: String Functions-Footnote-3528041 -Node: Gory Details528128 -Ref: table-sub-escapes529909 -Ref: table-sub-proposed531429 -Ref: table-posix-sub532793 -Ref: table-gensub-escapes534333 -Ref: Gory Details-Footnote-1535165 -Node: I/O Functions535316 -Ref: I/O Functions-Footnote-1542417 -Node: Time Functions542564 -Ref: Time Functions-Footnote-1553033 -Ref: Time Functions-Footnote-2553101 -Ref: Time Functions-Footnote-3553259 -Ref: Time Functions-Footnote-4553370 -Ref: Time Functions-Footnote-5553482 -Ref: Time Functions-Footnote-6553709 -Node: Bitwise Functions553975 -Ref: table-bitwise-ops554537 -Ref: Bitwise Functions-Footnote-1558845 -Node: Type Functions559014 -Node: I18N Functions560163 -Node: User-defined561808 -Node: Definition Syntax562612 -Ref: Definition Syntax-Footnote-1568018 -Node: Function Example568087 -Ref: Function Example-Footnote-1571004 -Node: Function Caveats571026 -Node: Calling A Function571544 -Node: Variable Scope572499 -Node: Pass By Value/Reference575487 -Node: Return Statement578997 -Node: Dynamic Typing581981 -Node: Indirect Calls582910 -Ref: Indirect Calls-Footnote-1592631 -Node: Functions Summary592759 -Node: Library Functions595458 -Ref: Library Functions-Footnote-1599076 -Ref: Library Functions-Footnote-2599219 -Node: Library Names599390 -Ref: Library Names-Footnote-1602850 -Ref: Library Names-Footnote-2603070 -Node: General Functions603156 -Node: Strtonum Function604184 -Node: Assert Function607204 -Node: Round Function610528 -Node: Cliff Random Function612069 -Node: Ordinal Functions613085 -Ref: Ordinal Functions-Footnote-1616150 -Ref: Ordinal Functions-Footnote-2616402 -Node: Join Function616613 -Ref: Join Function-Footnote-1618384 -Node: Getlocaltime Function618584 -Node: Readfile Function622325 -Node: Data File Management624273 -Node: Filetrans Function624905 -Node: Rewind Function628964 -Node: File Checking630349 -Ref: File Checking-Footnote-1631677 -Node: Empty Files631878 -Node: Ignoring Assigns633857 -Node: Getopt Function635408 -Ref: Getopt Function-Footnote-1646868 -Node: Passwd Functions647071 -Ref: Passwd Functions-Footnote-1655922 -Node: Group Functions656010 -Ref: Group Functions-Footnote-1663913 -Node: Walking Arrays664126 -Node: Library Functions Summary665729 -Node: Library Exercises667130 -Node: Sample Programs668410 -Node: Running Examples669180 -Node: Clones669908 -Node: Cut Program671132 -Node: Egrep Program680862 -Ref: Egrep Program-Footnote-1688366 -Node: Id Program688476 -Node: Split Program692120 -Ref: Split Program-Footnote-1695566 -Node: Tee Program695694 -Node: Uniq Program698481 -Node: Wc Program705902 -Ref: Wc Program-Footnote-1710150 -Node: Miscellaneous Programs710242 -Node: Dupword Program711455 -Node: Alarm Program713486 -Node: Translate Program718290 -Ref: Translate Program-Footnote-1722863 -Ref: Translate Program-Footnote-2723133 -Node: Labels Program723272 -Ref: Labels Program-Footnote-1726621 -Node: Word Sorting726705 -Node: History Sorting730775 -Node: Extract Program732611 -Node: Simple Sed740143 -Node: Igawk Program743205 -Ref: Igawk Program-Footnote-1757531 -Ref: Igawk Program-Footnote-2757732 -Ref: Igawk Program-Footnote-3757854 -Node: Anagram Program757969 -Node: Signature Program761031 -Node: Programs Summary762278 -Node: Programs Exercises763471 -Ref: Programs Exercises-Footnote-1767602 -Node: Advanced Features767693 -Node: Nondecimal Data769641 -Node: Array Sorting771231 -Node: Controlling Array Traversal771928 -Ref: Controlling Array Traversal-Footnote-1780259 -Node: Array Sorting Functions780377 -Ref: Array Sorting Functions-Footnote-1784269 -Node: Two-way I/O784463 -Ref: Two-way I/O-Footnote-1789407 -Ref: Two-way I/O-Footnote-2789593 -Node: TCP/IP Networking789675 -Node: Profiling792552 -Node: Advanced Features Summary800105 -Node: Internationalization802038 -Node: I18N and L10N803518 -Node: Explaining gettext804204 -Ref: Explaining gettext-Footnote-1809233 -Ref: Explaining gettext-Footnote-2809417 -Node: Programmer i18n809582 -Ref: Programmer i18n-Footnote-1814448 -Node: Translator i18n814497 -Node: String Extraction815291 -Ref: String Extraction-Footnote-1816422 -Node: Printf Ordering816508 -Ref: Printf Ordering-Footnote-1819294 -Node: I18N Portability819358 -Ref: I18N Portability-Footnote-1821807 -Node: I18N Example821870 -Ref: I18N Example-Footnote-1824670 -Node: Gawk I18N824742 -Node: I18N Summary825380 -Node: Debugger826719 -Node: Debugging827741 -Node: Debugging Concepts828182 -Node: Debugging Terms830039 -Node: Awk Debugging832614 -Node: Sample Debugging Session833506 -Node: Debugger Invocation834026 -Node: Finding The Bug835410 -Node: List of Debugger Commands841885 -Node: Breakpoint Control843217 -Node: Debugger Execution Control846909 -Node: Viewing And Changing Data850273 -Node: Execution Stack853638 -Node: Debugger Info855276 -Node: Miscellaneous Debugger Commands859293 -Node: Readline Support864485 -Node: Limitations865377 -Node: Debugging Summary867474 -Node: Arbitrary Precision Arithmetic868642 -Node: Computer Arithmetic870058 -Ref: table-numeric-ranges873659 -Ref: Computer Arithmetic-Footnote-1874518 -Node: Math Definitions874575 -Ref: table-ieee-formats877862 -Ref: Math Definitions-Footnote-1878466 -Node: MPFR features878571 -Node: FP Math Caution880240 -Ref: FP Math Caution-Footnote-1881290 -Node: Inexactness of computations881659 -Node: Inexact representation882607 -Node: Comparing FP Values883962 -Node: Errors accumulate885035 -Node: Getting Accuracy886468 -Node: Try To Round889127 -Node: Setting precision890026 -Ref: table-predefined-precision-strings890710 -Node: Setting the rounding mode892504 -Ref: table-gawk-rounding-modes892868 -Ref: Setting the rounding mode-Footnote-1896322 -Node: Arbitrary Precision Integers896501 -Ref: Arbitrary Precision Integers-Footnote-1900284 -Node: POSIX Floating Point Problems900433 -Ref: POSIX Floating Point Problems-Footnote-1904309 -Node: Floating point summary904347 -Node: Dynamic Extensions906539 -Node: Extension Intro908091 -Node: Plugin License909357 -Node: Extension Mechanism Outline910154 -Ref: figure-load-extension910582 -Ref: figure-register-new-function912062 -Ref: figure-call-new-function913066 -Node: Extension API Description915052 -Node: Extension API Functions Introduction916502 -Node: General Data Types921338 -Ref: General Data Types-Footnote-1927025 -Node: Memory Allocation Functions927324 -Ref: Memory Allocation Functions-Footnote-1930154 -Node: Constructor Functions930250 -Node: Registration Functions931984 -Node: Extension Functions932669 -Node: Exit Callback Functions934965 -Node: Extension Version String936213 -Node: Input Parsers936863 -Node: Output Wrappers946678 -Node: Two-way processors951194 -Node: Printing Messages953398 -Ref: Printing Messages-Footnote-1954475 -Node: Updating `ERRNO'954627 -Node: Requesting Values955367 -Ref: table-value-types-returned956095 -Node: Accessing Parameters957053 -Node: Symbol Table Access958284 -Node: Symbol table by name958798 -Node: Symbol table by cookie960778 -Ref: Symbol table by cookie-Footnote-1964917 -Node: Cached values964980 -Ref: Cached values-Footnote-1968484 -Node: Array Manipulation968575 -Ref: Array Manipulation-Footnote-1969673 -Node: Array Data Types969712 -Ref: Array Data Types-Footnote-1972369 -Node: Array Functions972461 -Node: Flattening Arrays976315 -Node: Creating Arrays983202 -Node: Extension API Variables987969 -Node: Extension Versioning988605 -Node: Extension API Informational Variables990506 -Node: Extension API Boilerplate991594 -Node: Finding Extensions995410 -Node: Extension Example995970 -Node: Internal File Description996742 -Node: Internal File Ops1000809 -Ref: Internal File Ops-Footnote-11012467 -Node: Using Internal File Ops1012607 -Ref: Using Internal File Ops-Footnote-11014990 -Node: Extension Samples1015263 -Node: Extension Sample File Functions1016787 -Node: Extension Sample Fnmatch1024389 -Node: Extension Sample Fork1025871 -Node: Extension Sample Inplace1027084 -Node: Extension Sample Ord1028759 -Node: Extension Sample Readdir1029595 -Ref: table-readdir-file-types1030451 -Node: Extension Sample Revout1031262 -Node: Extension Sample Rev2way1031853 -Node: Extension Sample Read write array1032594 -Node: Extension Sample Readfile1034533 -Node: Extension Sample Time1035628 -Node: Extension Sample API Tests1036977 -Node: gawkextlib1037468 -Node: Extension summary1040118 -Node: Extension Exercises1043800 -Node: Language History1044522 -Node: V7/SVR3.11046179 -Node: SVR41048360 -Node: POSIX1049805 -Node: BTL1051194 -Node: POSIX/GNU1051928 -Node: Feature History1057557 -Node: Common Extensions1070648 -Node: Ranges and Locales1071972 -Ref: Ranges and Locales-Footnote-11076611 -Ref: Ranges and Locales-Footnote-21076638 -Ref: Ranges and Locales-Footnote-31076872 -Node: Contributors1077093 -Node: History summary1082633 -Node: Installation1084002 -Node: Gawk Distribution1084958 -Node: Getting1085442 -Node: Extracting1086266 -Node: Distribution contents1087908 -Node: Unix Installation1093678 -Node: Quick Installation1094295 -Node: Additional Configuration Options1096726 -Node: Configuration Philosophy1098466 -Node: Non-Unix Installation1100817 -Node: PC Installation1101275 -Node: PC Binary Installation1102601 -Node: PC Compiling1104449 -Ref: PC Compiling-Footnote-11107470 -Node: PC Testing1107575 -Node: PC Using1108751 -Node: Cygwin1112866 -Node: MSYS1113689 -Node: VMS Installation1114187 -Node: VMS Compilation1114979 -Ref: VMS Compilation-Footnote-11116201 -Node: VMS Dynamic Extensions1116259 -Node: VMS Installation Details1117632 -Node: VMS Running1119884 -Node: VMS GNV1122725 -Node: VMS Old Gawk1123454 -Node: Bugs1123924 -Node: Other Versions1127888 -Node: Installation summary1134101 -Node: Notes1135157 -Node: Compatibility Mode1136022 -Node: Additions1136804 -Node: Accessing The Source1137729 -Node: Adding Code1139165 -Node: New Ports1145337 -Node: Derived Files1149818 -Ref: Derived Files-Footnote-11155293 -Ref: Derived Files-Footnote-21155327 -Ref: Derived Files-Footnote-31155923 -Node: Future Extensions1156037 -Node: Implementation Limitations1156643 -Node: Extension Design1157891 -Node: Old Extension Problems1159045 -Ref: Old Extension Problems-Footnote-11160562 -Node: Extension New Mechanism Goals1160619 -Ref: Extension New Mechanism Goals-Footnote-11163979 -Node: Extension Other Design Decisions1164168 -Node: Extension Future Growth1166276 -Node: Old Extension Mechanism1167112 -Node: Notes summary1168874 -Node: Basic Concepts1170060 -Node: Basic High Level1170741 -Ref: figure-general-flow1171013 -Ref: figure-process-flow1171612 -Ref: Basic High Level-Footnote-11174841 -Node: Basic Data Typing1175026 -Node: Glossary1178354 -Node: Copying1203512 -Node: GNU Free Documentation License1241068 -Node: Index1266204 +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-1129502 +Node: Other Arguments129527 +Node: Naming Standard Input132488 +Node: Environment Variables133581 +Node: AWKPATH Variable134139 +Ref: AWKPATH Variable-Footnote-1136991 +Ref: AWKPATH Variable-Footnote-2137036 +Node: AWKLIBPATH Variable137296 +Node: Other Environment Variables138055 +Node: Exit Status141528 +Node: Include Files142203 +Node: Loading Shared Libraries145781 +Node: Obsolete147208 +Node: Undocumented147905 +Node: Invoking Summary148172 +Node: Regexp149838 +Node: Regexp Usage151297 +Node: Escape Sequences153330 +Node: Regexp Operators159430 +Ref: Regexp Operators-Footnote-1166865 +Ref: Regexp Operators-Footnote-2167012 +Node: Bracket Expressions167110 +Ref: table-char-classes169127 +Node: Leftmost Longest172067 +Node: Computed Regexps173369 +Node: GNU Regexp Operators176766 +Node: Case-sensitivity180472 +Ref: Case-sensitivity-Footnote-1183362 +Ref: Case-sensitivity-Footnote-2183597 +Node: Regexp Summary183705 +Node: Reading Files185174 +Node: Records187268 +Node: awk split records188000 +Node: gawk split records192914 +Ref: gawk split records-Footnote-1197453 +Node: Fields197490 +Ref: Fields-Footnote-1200288 +Node: Nonconstant Fields200374 +Ref: Nonconstant Fields-Footnote-1202604 +Node: Changing Fields202806 +Node: Field Separators208738 +Node: Default Field Splitting211442 +Node: Regexp Field Splitting212559 +Node: Single Character Fields215909 +Node: Command Line Field Separator216968 +Node: Full Line Fields220180 +Ref: Full Line Fields-Footnote-1220688 +Node: Field Splitting Summary220734 +Ref: Field Splitting Summary-Footnote-1223865 +Node: Constant Size223966 +Node: Splitting By Content228572 +Ref: Splitting By Content-Footnote-1232645 +Node: Multiple Line232685 +Ref: Multiple Line-Footnote-1238574 +Node: Getline238753 +Node: Plain Getline240964 +Node: Getline/Variable243604 +Node: Getline/File244751 +Node: Getline/Variable/File246135 +Ref: Getline/Variable/File-Footnote-1247736 +Node: Getline/Pipe247823 +Node: Getline/Variable/Pipe250506 +Node: Getline/Coprocess251637 +Node: Getline/Variable/Coprocess252889 +Node: Getline Notes253628 +Node: Getline Summary256420 +Ref: table-getline-variants256832 +Node: Read Timeout257661 +Ref: Read Timeout-Footnote-1261475 +Node: Command-line directories261533 +Node: Input Summary262437 +Node: Input Exercises265689 +Node: Printing266417 +Node: Print268194 +Node: Print Examples269651 +Node: Output Separators272430 +Node: OFMT274448 +Node: Printf275802 +Node: Basic Printf276587 +Node: Control Letters278158 +Node: Format Modifiers282142 +Node: Printf Examples288149 +Node: Redirection290631 +Node: Special FD297470 +Ref: Special FD-Footnote-1300627 +Node: Special Files300701 +Node: Other Inherited Files301317 +Node: Special Network302317 +Node: Special Caveats303178 +Node: Close Files And Pipes304129 +Ref: Close Files And Pipes-Footnote-1311308 +Ref: Close Files And Pipes-Footnote-2311456 +Node: Output Summary311606 +Node: Output Exercises312602 +Node: Expressions313282 +Node: Values314467 +Node: Constants315143 +Node: Scalar Constants315823 +Ref: Scalar Constants-Footnote-1316682 +Node: Nondecimal-numbers316932 +Node: Regexp Constants319932 +Node: Using Constant Regexps320457 +Node: Variables323595 +Node: Using Variables324250 +Node: Assignment Options326160 +Node: Conversion328035 +Node: Strings And Numbers328559 +Ref: Strings And Numbers-Footnote-1331623 +Node: Locale influences conversions331732 +Ref: table-locale-affects334447 +Node: All Operators335035 +Node: Arithmetic Ops335665 +Node: Concatenation338170 +Ref: Concatenation-Footnote-1340989 +Node: Assignment Ops341095 +Ref: table-assign-ops346078 +Node: Increment Ops347356 +Node: Truth Values and Conditions350794 +Node: Truth Values351877 +Node: Typing and Comparison352926 +Node: Variable Typing353719 +Node: Comparison Operators357371 +Ref: table-relational-ops357781 +Node: POSIX String Comparison361296 +Ref: POSIX String Comparison-Footnote-1362368 +Node: Boolean Ops362506 +Ref: Boolean Ops-Footnote-1366985 +Node: Conditional Exp367076 +Node: Function Calls368803 +Node: Precedence372683 +Node: Locales376351 +Node: Expressions Summary377982 +Node: Patterns and Actions380556 +Node: Pattern Overview381676 +Node: Regexp Patterns383355 +Node: Expression Patterns383898 +Node: Ranges387678 +Node: BEGIN/END390784 +Node: Using BEGIN/END391546 +Ref: Using BEGIN/END-Footnote-1394283 +Node: I/O And BEGIN/END394389 +Node: BEGINFILE/ENDFILE396703 +Node: Empty399604 +Node: Using Shell Variables399921 +Node: Action Overview402197 +Node: Statements404524 +Node: If Statement406372 +Node: While Statement407870 +Node: Do Statement409898 +Node: For Statement411040 +Node: Switch Statement414195 +Node: Break Statement416583 +Node: Continue Statement418624 +Node: Next Statement420449 +Node: Nextfile Statement422829 +Node: Exit Statement425459 +Node: Built-in Variables427862 +Node: User-modified428995 +Ref: User-modified-Footnote-1436675 +Node: Auto-set436737 +Ref: Auto-set-Footnote-1449931 +Ref: Auto-set-Footnote-2450136 +Node: ARGC and ARGV450192 +Node: Pattern Action Summary454396 +Node: Arrays456823 +Node: Array Basics458152 +Node: Array Intro458996 +Ref: figure-array-elements460969 +Ref: Array Intro-Footnote-1463493 +Node: Reference to Elements463621 +Node: Assigning Elements466071 +Node: Array Example466562 +Node: Scanning an Array468320 +Node: Controlling Scanning471336 +Ref: Controlling Scanning-Footnote-1476525 +Node: Numeric Array Subscripts476841 +Node: Uninitialized Subscripts479026 +Node: Delete480643 +Ref: Delete-Footnote-1483387 +Node: Multidimensional483444 +Node: Multiscanning486539 +Node: Arrays of Arrays488128 +Node: Arrays Summary492889 +Node: Functions494994 +Node: Built-in495867 +Node: Calling Built-in496945 +Node: Numeric Functions498933 +Ref: Numeric Functions-Footnote-1503757 +Ref: Numeric Functions-Footnote-2504114 +Ref: Numeric Functions-Footnote-3504162 +Node: String Functions504431 +Ref: String Functions-Footnote-1527895 +Ref: String Functions-Footnote-2528024 +Ref: String Functions-Footnote-3528272 +Node: Gory Details528359 +Ref: table-sub-escapes530140 +Ref: table-sub-proposed531660 +Ref: table-posix-sub533024 +Ref: table-gensub-escapes534564 +Ref: Gory Details-Footnote-1535396 +Node: I/O Functions535547 +Ref: I/O Functions-Footnote-1542648 +Node: Time Functions542795 +Ref: Time Functions-Footnote-1553264 +Ref: Time Functions-Footnote-2553332 +Ref: Time Functions-Footnote-3553490 +Ref: Time Functions-Footnote-4553601 +Ref: Time Functions-Footnote-5553713 +Ref: Time Functions-Footnote-6553940 +Node: Bitwise Functions554206 +Ref: table-bitwise-ops554768 +Ref: Bitwise Functions-Footnote-1559076 +Node: Type Functions559245 +Node: I18N Functions560394 +Node: User-defined562039 +Node: Definition Syntax562843 +Ref: Definition Syntax-Footnote-1568249 +Node: Function Example568318 +Ref: Function Example-Footnote-1571235 +Node: Function Caveats571257 +Node: Calling A Function571775 +Node: Variable Scope572730 +Node: Pass By Value/Reference575718 +Node: Return Statement579228 +Node: Dynamic Typing582212 +Node: Indirect Calls583141 +Ref: Indirect Calls-Footnote-1594445 +Node: Functions Summary594573 +Node: Library Functions597272 +Ref: Library Functions-Footnote-1600890 +Ref: Library Functions-Footnote-2601033 +Node: Library Names601204 +Ref: Library Names-Footnote-1604664 +Ref: Library Names-Footnote-2604884 +Node: General Functions604970 +Node: Strtonum Function606073 +Node: Assert Function609093 +Node: Round Function612417 +Node: Cliff Random Function613958 +Node: Ordinal Functions614974 +Ref: Ordinal Functions-Footnote-1618039 +Ref: Ordinal Functions-Footnote-2618291 +Node: Join Function618502 +Ref: Join Function-Footnote-1620273 +Node: Getlocaltime Function620473 +Node: Readfile Function624214 +Node: Shell Quoting626184 +Node: Data File Management627585 +Node: Filetrans Function628217 +Node: Rewind Function632276 +Node: File Checking633661 +Ref: File Checking-Footnote-1634989 +Node: Empty Files635190 +Node: Ignoring Assigns637169 +Node: Getopt Function638720 +Ref: Getopt Function-Footnote-1650180 +Node: Passwd Functions650383 +Ref: Passwd Functions-Footnote-1659234 +Node: Group Functions659322 +Ref: Group Functions-Footnote-1667225 +Node: Walking Arrays667438 +Node: Library Functions Summary669041 +Node: Library Exercises670442 +Node: Sample Programs671722 +Node: Running Examples672492 +Node: Clones673220 +Node: Cut Program674444 +Node: Egrep Program684174 +Ref: Egrep Program-Footnote-1691678 +Node: Id Program691788 +Node: Split Program695432 +Ref: Split Program-Footnote-1698878 +Node: Tee Program699006 +Node: Uniq Program701793 +Node: Wc Program709214 +Ref: Wc Program-Footnote-1713462 +Node: Miscellaneous Programs713554 +Node: Dupword Program714767 +Node: Alarm Program716798 +Node: Translate Program721602 +Ref: Translate Program-Footnote-1726166 +Node: Labels Program726436 +Ref: Labels Program-Footnote-1729785 +Node: Word Sorting729869 +Node: History Sorting733939 +Node: Extract Program735775 +Node: Simple Sed743307 +Node: Igawk Program746369 +Ref: Igawk Program-Footnote-1760695 +Ref: Igawk Program-Footnote-2760896 +Ref: Igawk Program-Footnote-3761018 +Node: Anagram Program761133 +Node: Signature Program764195 +Node: Programs Summary765442 +Node: Programs Exercises766635 +Ref: Programs Exercises-Footnote-1770766 +Node: Advanced Features770857 +Node: Nondecimal Data772805 +Node: Array Sorting774395 +Node: Controlling Array Traversal775092 +Ref: Controlling Array Traversal-Footnote-1783423 +Node: Array Sorting Functions783541 +Ref: Array Sorting Functions-Footnote-1787433 +Node: Two-way I/O787627 +Ref: Two-way I/O-Footnote-1792571 +Ref: Two-way I/O-Footnote-2792757 +Node: TCP/IP Networking792839 +Node: Profiling795716 +Node: Advanced Features Summary803269 +Node: Internationalization805202 +Node: I18N and L10N806682 +Node: Explaining gettext807368 +Ref: Explaining gettext-Footnote-1812397 +Ref: Explaining gettext-Footnote-2812581 +Node: Programmer i18n812746 +Ref: Programmer i18n-Footnote-1817612 +Node: Translator i18n817661 +Node: String Extraction818455 +Ref: String Extraction-Footnote-1819586 +Node: Printf Ordering819672 +Ref: Printf Ordering-Footnote-1822458 +Node: I18N Portability822522 +Ref: I18N Portability-Footnote-1824971 +Node: I18N Example825034 +Ref: I18N Example-Footnote-1827834 +Node: Gawk I18N827906 +Node: I18N Summary828544 +Node: Debugger829883 +Node: Debugging830905 +Node: Debugging Concepts831346 +Node: Debugging Terms833203 +Node: Awk Debugging835778 +Node: Sample Debugging Session836670 +Node: Debugger Invocation837190 +Node: Finding The Bug838574 +Node: List of Debugger Commands845049 +Node: Breakpoint Control846381 +Node: Debugger Execution Control850073 +Node: Viewing And Changing Data853437 +Node: Execution Stack856802 +Node: Debugger Info858440 +Node: Miscellaneous Debugger Commands862457 +Node: Readline Support867649 +Node: Limitations868541 +Node: Debugging Summary870638 +Node: Arbitrary Precision Arithmetic871806 +Node: Computer Arithmetic873222 +Ref: table-numeric-ranges876823 +Ref: Computer Arithmetic-Footnote-1877682 +Node: Math Definitions877739 +Ref: table-ieee-formats881026 +Ref: Math Definitions-Footnote-1881630 +Node: MPFR features881735 +Node: FP Math Caution883404 +Ref: FP Math Caution-Footnote-1884454 +Node: Inexactness of computations884823 +Node: Inexact representation885771 +Node: Comparing FP Values887126 +Node: Errors accumulate888199 +Node: Getting Accuracy889632 +Node: Try To Round892291 +Node: Setting precision893190 +Ref: table-predefined-precision-strings893874 +Node: Setting the rounding mode895668 +Ref: table-gawk-rounding-modes896032 +Ref: Setting the rounding mode-Footnote-1899486 +Node: Arbitrary Precision Integers899665 +Ref: Arbitrary Precision Integers-Footnote-1903448 +Node: POSIX Floating Point Problems903597 +Ref: POSIX Floating Point Problems-Footnote-1907473 +Node: Floating point summary907511 +Node: Dynamic Extensions909703 +Node: Extension Intro911255 +Node: Plugin License912521 +Node: Extension Mechanism Outline913318 +Ref: figure-load-extension913746 +Ref: figure-register-new-function915226 +Ref: figure-call-new-function916230 +Node: Extension API Description918216 +Node: Extension API Functions Introduction919666 +Node: General Data Types924502 +Ref: General Data Types-Footnote-1930189 +Node: Memory Allocation Functions930488 +Ref: Memory Allocation Functions-Footnote-1933318 +Node: Constructor Functions933414 +Node: Registration Functions935148 +Node: Extension Functions935833 +Node: Exit Callback Functions938129 +Node: Extension Version String939377 +Node: Input Parsers940027 +Node: Output Wrappers949842 +Node: Two-way processors954358 +Node: Printing Messages956562 +Ref: Printing Messages-Footnote-1957639 +Node: Updating `ERRNO'957791 +Node: Requesting Values958531 +Ref: table-value-types-returned959259 +Node: Accessing Parameters960217 +Node: Symbol Table Access961448 +Node: Symbol table by name961962 +Node: Symbol table by cookie963942 +Ref: Symbol table by cookie-Footnote-1968081 +Node: Cached values968144 +Ref: Cached values-Footnote-1971648 +Node: Array Manipulation971739 +Ref: Array Manipulation-Footnote-1972837 +Node: Array Data Types972876 +Ref: Array Data Types-Footnote-1975533 +Node: Array Functions975625 +Node: Flattening Arrays979479 +Node: Creating Arrays986366 +Node: Extension API Variables991133 +Node: Extension Versioning991769 +Node: Extension API Informational Variables993670 +Node: Extension API Boilerplate994758 +Node: Finding Extensions998574 +Node: Extension Example999134 +Node: Internal File Description999906 +Node: Internal File Ops1003973 +Ref: Internal File Ops-Footnote-11015631 +Node: Using Internal File Ops1015771 +Ref: Using Internal File Ops-Footnote-11018154 +Node: Extension Samples1018427 +Node: Extension Sample File Functions1019951 +Node: Extension Sample Fnmatch1027553 +Node: Extension Sample Fork1029035 +Node: Extension Sample Inplace1030248 +Node: Extension Sample Ord1031923 +Node: Extension Sample Readdir1032759 +Ref: table-readdir-file-types1033615 +Node: Extension Sample Revout1034426 +Node: Extension Sample Rev2way1035017 +Node: Extension Sample Read write array1035758 +Node: Extension Sample Readfile1037697 +Node: Extension Sample Time1038792 +Node: Extension Sample API Tests1040141 +Node: gawkextlib1040632 +Node: Extension summary1043282 +Node: Extension Exercises1046964 +Node: Language History1047686 +Node: V7/SVR3.11049343 +Node: SVR41051524 +Node: POSIX1052969 +Node: BTL1054358 +Node: POSIX/GNU1055092 +Node: Feature History1060721 +Node: Common Extensions1073812 +Node: Ranges and Locales1075136 +Ref: Ranges and Locales-Footnote-11079775 +Ref: Ranges and Locales-Footnote-21079802 +Ref: Ranges and Locales-Footnote-31080036 +Node: Contributors1080257 +Node: History summary1085797 +Node: Installation1087166 +Node: Gawk Distribution1088122 +Node: Getting1088606 +Node: Extracting1089430 +Node: Distribution contents1091072 +Node: Unix Installation1096842 +Node: Quick Installation1097459 +Node: Additional Configuration Options1099890 +Node: Configuration Philosophy1101630 +Node: Non-Unix Installation1103981 +Node: PC Installation1104439 +Node: PC Binary Installation1105765 +Node: PC Compiling1107613 +Ref: PC Compiling-Footnote-11110634 +Node: PC Testing1110739 +Node: PC Using1111915 +Node: Cygwin1116030 +Node: MSYS1116853 +Node: VMS Installation1117351 +Node: VMS Compilation1118143 +Ref: VMS Compilation-Footnote-11119365 +Node: VMS Dynamic Extensions1119423 +Node: VMS Installation Details1121107 +Node: VMS Running1123359 +Node: VMS GNV1126200 +Node: VMS Old Gawk1126929 +Node: Bugs1127399 +Node: Other Versions1131369 +Node: Installation summary1137582 +Node: Notes1138638 +Node: Compatibility Mode1139503 +Node: Additions1140285 +Node: Accessing The Source1141210 +Node: Adding Code1142646 +Node: New Ports1148818 +Node: Derived Files1153299 +Ref: Derived Files-Footnote-11158774 +Ref: Derived Files-Footnote-21158808 +Ref: Derived Files-Footnote-31159404 +Node: Future Extensions1159518 +Node: Implementation Limitations1160124 +Node: Extension Design1161372 +Node: Old Extension Problems1162526 +Ref: Old Extension Problems-Footnote-11164043 +Node: Extension New Mechanism Goals1164100 +Ref: Extension New Mechanism Goals-Footnote-11167460 +Node: Extension Other Design Decisions1167649 +Node: Extension Future Growth1169757 +Node: Old Extension Mechanism1170593 +Node: Notes summary1172355 +Node: Basic Concepts1173541 +Node: Basic High Level1174222 +Ref: figure-general-flow1174494 +Ref: figure-process-flow1175093 +Ref: Basic High Level-Footnote-11178322 +Node: Basic Data Typing1178507 +Node: Glossary1181835 +Node: Copying1206993 +Node: GNU Free Documentation License1244549 +Node: Index1269685 End Tag Table |