diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1283 |
1 files changed, 641 insertions, 642 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index e501b297..fe51de53 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -9,7 +9,7 @@ START-INFO-DIR-ENTRY * awk: (gawk)Invoking gawk. Text scanning and processing. END-INFO-DIR-ENTRY - Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2014 + Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2015 Free Software Foundation, Inc. @@ -37,7 +37,7 @@ General Introduction This file documents `awk', a program that you can use to select particular records in a file and perform operations upon them. - Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2014 + Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2015 Free Software Foundation, Inc. @@ -748,10 +748,10 @@ and associative arrays. Those looking for something new can try out The programs in this book make clear that an AWK program is typically much smaller and faster to develop than a counterpart written -in C. Consequently, there is often a payoff to prototype an algorithm -or design in AWK to get it running quickly and expose problems early. -Often, the interpreted performance is adequate and the AWK prototype -becomes the product. +in C. Consequently, there is often a payoff to prototyping an +algorithm or design in AWK to get it running quickly and expose +problems early. Often, the interpreted performance is adequate and the +AWK prototype becomes the product. The new `pgawk' (profiling `gawk'), produces program execution counts. I recently experimented with an algorithm that for n lines of @@ -775,16 +775,16 @@ Foreword to the Fourth Edition ****************************** Some things don't change. Thirteen years ago I wrote: "If you use AWK -or want to learn how, then read this book." True then and still true +or want to learn how, then read this book." True then, and still true today. - Learning to use a programming language is more than mastering the -syntax. One needs to acquire an understanding of how to use the + Learning to use a programming language is about more than mastering +the syntax. One needs to acquire an understanding of how to use the features of the language to solve practical programming problems. A focus of this book is many examples that show how to use AWK. Some things do change. Our computers are much faster and have more -memory. Consequently, speed and storage inefficiencies of a high level +memory. Consequently, speed and storage inefficiencies of a high-level language matter less. Prototyping in AWK and then rewriting in C for performance reasons happens less, because more often the prototype is fast enough. @@ -793,9 +793,9 @@ fast enough. C++. With `gawk' 4.1 and later, you do not have to choose between writing your program in AWK or in C/C++. You can write most of your program in AWK and the aspects that require C/C++ capabilities can be -written in C/C++ and then the pieces glued together when the `gawk' +written in C/C++, and then the pieces glued together when the `gawk' module loads the C/C++ module as a dynamic plug-in. *note Dynamic -Extensions::, has all the details, and as expected, many examples to +Extensions::, has all the details, and, as expected, many examples to help you learn the ins and outs. I enjoy programming in AWK and had fun (re)reading this book. I @@ -834,7 +834,7 @@ So most of the time, we don't distinguish between `gawk' and other * Validate data - * Produce indexes and perform other document preparation tasks + * Produce indexes and perform other document-preparation tasks * Experiment with algorithms that you can adapt later to other computer languages @@ -926,7 +926,7 @@ advice from Richard Stallman. John Woods contributed parts of the code as well. In 1988 and 1989, David Trueman, with help from me, thoroughly reworked `gawk' for compatibility with the newer `awk'. Circa 1994, I became the primary maintainer. Current development -focuses on bug fixes, performance improvements, standards compliance +focuses on bug fixes, performance improvements, standards compliance, and, occasionally, new features. In May 1997, Ju"rgen Kahrs felt the need for network access from @@ -938,10 +938,10 @@ the `gawk' distribution). His code finally became part of the main John Haque rewrote the `gawk' internals, in the process providing an `awk'-level debugger. This version became available as `gawk' version -4.0, in 2011. +4.0 in 2011. - *Note Contributors::, for a full list of those who made important -contributions to `gawk'. + *Note Contributors::, for a full list of those who have made +important contributions to `gawk'. File: gawk.info, Node: Names, Next: This Manual, Prev: History, Up: Preface @@ -954,7 +954,7 @@ provided in *note Language History::. The language described in this Info file is often referred to as "new `awk'." By analogy, the original version of `awk' is referred to as "old `awk'." - Today, on most systems, when you run the `awk' utility, you get some + Today, on most systems, when you run the `awk' utility you get some version of new `awk'.(1) If your system's standard `awk' is the old one, you will see something like this if you try the test program: @@ -1014,9 +1014,9 @@ in *note Sample Programs::, should be of interest. This Info file is split into several parts, as follows: - * Part I describes the `awk' language and `gawk' program in detail. - It starts with the basics, and continues through all of the - features of `awk'. It contains the following chapters: + * Part I describes the `awk' language and the `gawk' program in + detail. It starts with the basics, and continues through all of + the features of `awk'. It contains the following chapters: - *note Getting Started::, provides the essentials you need to know to begin using `awk'. @@ -1047,9 +1047,10 @@ in *note Sample Programs::, should be of interest. `gawk' use. - *note Arrays::, covers `awk''s one-and-only data structure: - associative arrays. Deleting array elements and whole arrays - is also described, as well as sorting arrays in `gawk'. It - also describes how `gawk' provides arrays of arrays. + the associative array. Deleting array elements and whole + arrays is described, as well as sorting arrays in `gawk'. + The major node also describes how `gawk' provides arrays of + arrays. - *note Functions::, describes the built-in functions `awk' and `gawk' provide, as well as how to define your own functions. @@ -1057,14 +1058,13 @@ in *note Sample Programs::, should be of interest. indirectly. * Part II shows how to use `awk' and `gawk' for problem solving. - There is lots of code here for you to read and learn from. It - contains the following chapters: + There is lots of code here for you to read and learn from. This + part contains the following chapters: - - *note Library Functions::, which provides a number of - functions meant to be used from main `awk' programs. + - *note Library Functions::, provides a number of functions + meant to be used from main `awk' programs. - - *note Sample Programs::, which provides many sample `awk' - programs. + - *note Sample Programs::, provides many sample `awk' programs. Reading these two chapters allows you to see `awk' solving real problems. @@ -1096,7 +1096,7 @@ in *note Sample Programs::, should be of interest. It contains the following appendices: - *note Language History::, describes how the `awk' language - has evolved since its first release to present. It also + has evolved since its first release to the present. It also describes how `gawk' has acquired features over time. - *note Installation::, describes how to get `gawk', how to @@ -1113,7 +1113,7 @@ in *note Sample Programs::, should be of interest. material for those who are completely unfamiliar with computer programming. - The *note Glossary::, defines most, if not all of, the + The *note Glossary::, defines most, if not all, of the significant terms used throughout the Info file. If you find terms that you aren't familiar with, try looking them up here. @@ -1142,8 +1142,8 @@ node briefly documents the typographical conventions used in Texinfo. common shell primary and secondary prompts, `$' and `>'. Input that you type is shown `like this'. Output from the command is preceded by the glyph "-|". This typically represents the command's standard -output. Error messages, and other output on the command's standard -error, are preceded by the glyph "error-->". For example: +output. Error messages and other output on the command's standard +error are preceded by the glyph "error-->". For example: $ echo hi on stdout -| hi on stdout @@ -1155,7 +1155,7 @@ particular, there are special characters called "control characters." These are characters that you type by holding down both the `CONTROL' key and another key, at the same time. For example, a `Ctrl-d' is typed by first pressing and holding the `CONTROL' key, next pressing the `d' -key and finally releasing both keys. +key, and finally releasing both keys. For the sake of brevity, throughout this Info file, we refer to Brian Kernighan's version of `awk' as "BWK `awk'." (*Note Other @@ -1171,7 +1171,7 @@ Dark Corners Until the POSIX standard (and `GAWK: Effective AWK Programming'), many features of `awk' were either poorly documented or not documented at all. Descriptions of such features (often called "dark corners") -are noted in this Info file with "(d.c.)". They also appear in the +are noted in this Info file with "(d.c.)." They also appear in the index under the heading "dark corner." But, as noted by the opening quote, any coverage of dark corners is @@ -1194,8 +1194,8 @@ editor. GNU Emacs is the most widely used version of Emacs today. The GNU(1) Project is an ongoing effort on the part of the Free Software Foundation to create a complete, freely distributable, -POSIX-compliant computing environment. The FSF uses the "GNU General -Public License" (GPL) to ensure that their software's source code is +POSIX-compliant computing environment. The FSF uses the GNU General +Public License (GPL) to ensure that its software's source code is always available to the end user. A copy of the GPL is included for your reference (*note Copying::). The GPL applies to the C language source code for `gawk'. To find out more about the FSF and the GNU @@ -1223,26 +1223,26 @@ original, "old" version of `awk'. I started working with that version in the fall of 1988. As work on it progressed, the FSF published several preliminary versions (numbered -0.X). In 1996, Edition 1.0 was released with `gawk' 3.0.0. The FSF +0.X). In 1996, edition 1.0 was released with `gawk' 3.0.0. The FSF published the first two editions under the title `The GNU Awk User's Guide'. This edition maintains the basic structure of the previous editions. For FSF edition 4.0, the content was thoroughly reviewed and updated. All references to `gawk' versions prior to 4.0 were removed. Of -significant note for that edition was *note Debugger::. +significant note for that edition was the addition of *note Debugger::. For FSF edition 4.1, the content has been reorganized into parts, and the major new additions are *note Arbitrary Precision Arithmetic::, and *note Dynamic Extensions::. This Info file will undoubtedly continue to evolve. If you find an -error in this Info file, please report it! *Note Bugs::, for +error in the Info file, please report it! *Note Bugs::, for information on submitting problem reports electronically. ---------- Footnotes ---------- - (1) GNU stands for "GNU's not Unix." + (1) GNU stands for "GNU's Not Unix." (2) The terminology "GNU/Linux" is explained in the *note Glossary::. @@ -1286,7 +1286,7 @@ acknowledgments: this manual. Jay Fenlason contributed many ideas and sample programs. Richard Mlynarik and Robert Chassell gave helpful comments on drafts of this manual. The paper `A Supplemental - Document for `awk'' by John W. Pierce of the Chemistry Department + Document for AWK' by John W. Pierce of the Chemistry Department at UC San Diego, pinpointed several issues relevant both to `awk' implementation and to this manual, that would otherwise have escaped us. @@ -1299,7 +1299,7 @@ GNU Project. acknowledgements: The following people (in alphabetical order) provided helpful - comments on various versions of this book, Rick Adams, Dr. Nelson + comments on various versions of this book: Rick Adams, Dr. Nelson H.F. Beebe, Karl Berry, Dr. Michael Brennan, Rich Burridge, Claire Cloutier, Diane Close, Scott Deifik, Christopher ("Topher") Eliot, Jeffrey Friedl, Dr. Darrel Hankerson, Michal Jaegermann, Dr. @@ -1308,7 +1308,7 @@ acknowledgements: Robert J. Chassell provided much valuable advice on the use of Texinfo. He also deserves special thanks for convincing me _not_ - to title this Info file `How To Gawk Politely'. Karl Berry helped + to title this Info file `How to Gawk Politely'. Karl Berry helped significantly with the TeX part of Texinfo. I would like to thank Marshall and Elaine Hartholz of Seattle and @@ -1348,18 +1348,18 @@ of people. *Note Contributors::, for the full list. Thanks to Michael Brennan for the Forewords. Thanks to Patrice Dumas for the new `makeinfo' program. Thanks to -Karl Berry who continues to work to keep the Texinfo markup language +Karl Berry, who continues to work to keep the Texinfo markup language sane. Robert P.J. Day, Michael Brennan, and Brian Kernighan kindly acted as reviewers for the 2015 edition of this Info file. Their feedback helped improve the final work. - I would like to thank Brian Kernighan for invaluable assistance -during the testing and debugging of `gawk', and for ongoing help and -advice in clarifying numerous points about the language. We could not -have done nearly as good a job on either `gawk' or its documentation -without his help. + I would also like to thank Brian Kernighan for his invaluable +assistance during the testing and debugging of `gawk', and for his +ongoing help and advice in clarifying numerous points about the +language. We could not have done nearly as good a job on either `gawk' +or its documentation without his help. Brian is in a class by himself as a programmer and technical author. I have to thank him (yet again) for his ongoing friendship and for @@ -1402,10 +1402,10 @@ contain "function definitions", an advanced feature that we will ignore for now; *note User-defined::). Each rule specifies one pattern to search for and one action to perform upon finding the pattern. - Syntactically, a rule consists of a pattern followed by an action. -The action is enclosed in braces to separate it from the pattern. -Newlines usually separate rules. Therefore, an `awk' program looks -like this: + Syntactically, a rule consists of a "pattern" followed by an +"action". The action is enclosed in braces to separate it from the +pattern. Newlines usually separate rules. Therefore, an `awk' program +looks like this: PATTERN { ACTION } PATTERN { ACTION } @@ -1473,7 +1473,7 @@ program as the first argument of the `awk' command, like this: awk 'PROGRAM' INPUT-FILE1 INPUT-FILE2 ... -where PROGRAM consists of a series of PATTERNS and ACTIONS, as +where PROGRAM consists of a series of patterns and actions, as described earlier. This command format instructs the "shell", or command interpreter, @@ -1488,8 +1488,8 @@ programs from shell scripts, because it avoids the need for a separate file for the `awk' program. A self-contained shell script is more reliable because there are no other files to misplace. - Later in this chapter, *note Very Simple::, presents several short, -self-contained programs. + Later in this chapter, in *note Very Simple::, we'll see examples of +several short, self-contained programs. File: gawk.info, Node: Read Terminal, Next: Long, Prev: One-shot, Up: Running gawk @@ -1504,7 +1504,7 @@ following command line: `awk' applies the PROGRAM to the "standard input", which usually means whatever you type on the keyboard. This continues until you indicate -end-of-file by typing `Ctrl-d'. (On other operating systems, the +end-of-file by typing `Ctrl-d'. (On non-POSIX operating systems, the end-of-file character may be different. For example, on OS/2, it is `Ctrl-z'.) @@ -1579,10 +1579,9 @@ that are provided on the `awk' command line. (Also, placing the program in a file allows us to use a literal single quote in the program text, instead of the magic `\47'.) - If you want to clearly identify your `awk' program files as such, -you can add the extension `.awk' to the file name. This doesn't affect -the execution of the `awk' program but it does make "housekeeping" -easier. + If you want to clearly identify an `awk' program file as such, you +can add the extension `.awk' to the file name. This doesn't affect the +execution of the `awk' program but it does make "housekeeping" easier. File: gawk.info, Node: Executable Scripts, Next: Comments, Prev: Long, Up: Running gawk @@ -1711,7 +1710,7 @@ at a later time. File: gawk.info, Node: Quoting, Prev: Comments, Up: Running gawk -1.1.6 Shell-Quoting Issues +1.1.6 Shell Quoting Issues -------------------------- * Menu: @@ -1806,7 +1805,7 @@ shell quoting tricks, like this: -| Here is a single quote <'> This program consists of three concatenated quoted strings. The first -and the third are single quoted, the second is double quoted. +and the third are single-quoted, and the second is double-quoted. This can be "simplified" to: @@ -1833,8 +1832,7 @@ like so: $ awk 'BEGIN { print "Here is a double quote <\42>" }' -| Here is a double quote <"> -This works nicely, except that you should comment clearly what the -escapes mean. +This works nicely, but you should comment clearly what the escapes mean. A fourth option is to use command-line variable assignment, like this: @@ -1843,11 +1841,11 @@ this: -| Here is a single quote <'> (Here, the two string constants and the value of `sq' are -concatenated into a single string which is printed by `print'.) +concatenated into a single string that is printed by `print'.) If you really need both single and double quotes in your `awk' program, it is probably best to move it into a separate file, where the -shell won't be part of the picture, and you can say what you mean. +shell won't be part of the picture and you can say what you mean. File: gawk.info, Node: DOS Quoting, Up: Quoting @@ -1905,7 +1903,7 @@ of green crates shipped, the number of red boxes shipped, the number of orange bags shipped, and the number of blue packages shipped, respectively. There are 16 entries, covering the 12 months of last year and the first four months of the current year. An empty line separates -the data for the two years. +the data for the two years: Jan 13 25 15 115 Feb 15 32 24 226 @@ -1937,7 +1935,7 @@ File: gawk.info, Node: Very Simple, Next: Two Rules, Prev: Sample Data Files, The following command runs a simple `awk' program that searches the input file `mail-list' for the character string `li' (a grouping of characters is usually called a "string"; the term "string" is based on -similar usage in English, such as "a string of pearls," or "a string of +similar usage in English, such as "a string of pearls" or "a string of cars in a train"): awk '/li/ { print $0 }' mail-list @@ -1973,24 +1971,25 @@ prints all lines matching the pattern `li'. By comparison, omitting the `print' statement but retaining the braces makes an empty action that does nothing (i.e., no lines are printed). - Many practical `awk' programs are just a line or two. Following is a -collection of useful, short programs to get you started. Some of these -programs contain constructs that haven't been covered yet. (The -description of the program will give you a good idea of what is going -on, but you'll need to read the rest of the Info file to become an -`awk' expert!) Most of the examples use a data file named `data'. -This is just a placeholder; if you use these programs yourself, -substitute your own file names for `data'. For future reference, note -that there is often more than one way to do things in `awk'. At some -point, you may want to look back at these examples and see if you can -come up with different ways to do the same things shown here: + Many practical `awk' programs are just a line or two long. +Following is a collection of useful, short programs to get you started. +Some of these programs contain constructs that haven't been covered +yet. (The description of the program will give you a good idea of what +is going on, but you'll need to read the rest of the Info file to +become an `awk' expert!) Most of the examples use a data file named +`data'. This is just a placeholder; if you use these programs +yourself, substitute your own file names for `data'. For future +reference, note that there is often more than one way to do things in +`awk'. At some point, you may want to look back at these examples and +see if you can come up with different ways to do the same things shown +here: * Print every line that is longer than 80 characters: awk 'length($0) > 80' data - The sole rule has a relational expression as its pattern and it - has no action--so it uses the default action, printing the record. + The sole rule has a relational expression as its pattern and has no + action--so it uses the default action, printing the record. * Print the length of the longest input line: @@ -2045,8 +2044,8 @@ come up with different ways to do the same things shown here: awk 'NR % 2 == 0' data - If you use the expression `NR % 2 == 1' instead, the program would - print the odd-numbered lines. + If you used the expression `NR % 2 == 1' instead, the program + would print the odd-numbered lines. File: gawk.info, Node: Two Rules, Next: More Complex, Prev: Very Simple, Up: Getting Started @@ -5918,7 +5917,7 @@ the same as specifying no timeout at all. implicit loop that reads input records and matches them against patterns, like so: - $ gawk 'BEGIN { PROCINFO["-", "READ_TIMEOUT"] = 5000 } + $ gawk 'BEGIN { PROCINFO["-", "READ_TIMEOUT"] = 5000 } > { print "You entered: " $0 }' gawk -| You entered: gawk @@ -32620,7 +32619,7 @@ Index * exit the debugger: Miscellaneous Debugger Commands. (line 99) * exp: Numeric Functions. (line 33) -* expand utility: Very Simple. (line 72) +* expand utility: Very Simple. (line 73) * Expat XML parser library: gawkextlib. (line 33) * exponent: Numeric Functions. (line 33) * expressions: Expressions. (line 6) @@ -34454,559 +34453,559 @@ Index Tag Table: Node: Top1204 Node: Foreword342225 -Node: Foreword446667 -Node: Preface48189 -Ref: Preface-Footnote-151060 -Ref: Preface-Footnote-251167 -Ref: Preface-Footnote-351400 -Node: History51542 -Node: Names53888 -Ref: Names-Footnote-154982 -Node: This Manual55128 -Ref: This Manual-Footnote-161615 -Node: Conventions61715 -Node: Manual History64053 -Ref: Manual History-Footnote-167035 -Ref: Manual History-Footnote-267076 -Node: How To Contribute67150 -Node: Acknowledgments68279 -Node: Getting Started73084 -Node: Running gawk75517 -Node: One-shot76707 -Node: Read Terminal77955 -Node: Long79982 -Node: Executable Scripts81498 -Ref: Executable Scripts-Footnote-184287 -Node: Comments84390 -Node: Quoting86872 -Node: DOS Quoting92396 -Node: Sample Data Files93071 -Node: Very Simple95666 -Node: Two Rules100564 -Node: More Complex102450 -Node: Statements/Lines105312 -Ref: Statements/Lines-Footnote-1109767 -Node: Other Features110032 -Node: When110963 -Ref: When-Footnote-1112717 -Node: Intro Summary112782 -Node: Invoking Gawk113665 -Node: Command Line115179 -Node: Options115977 -Ref: Options-Footnote-1131781 -Ref: Options-Footnote-2132010 -Node: Other Arguments132035 -Node: Naming Standard Input134983 -Node: Environment Variables136076 -Node: AWKPATH Variable136634 -Ref: AWKPATH Variable-Footnote-1140047 -Ref: AWKPATH Variable-Footnote-2140092 -Node: AWKLIBPATH Variable140352 -Node: Other Environment Variables141608 -Node: Exit Status145096 -Node: Include Files145772 -Node: Loading Shared Libraries149369 -Node: Obsolete150796 -Node: Undocumented151493 -Node: Invoking Summary151760 -Node: Regexp153424 -Node: Regexp Usage154878 -Node: Escape Sequences156915 -Node: Regexp Operators163156 -Ref: Regexp Operators-Footnote-1170582 -Ref: Regexp Operators-Footnote-2170729 -Node: Bracket Expressions170827 -Ref: table-char-classes172842 -Node: Leftmost Longest175766 -Node: Computed Regexps177068 -Node: GNU Regexp Operators180465 -Node: Case-sensitivity184138 -Ref: Case-sensitivity-Footnote-1187023 -Ref: Case-sensitivity-Footnote-2187258 -Node: Regexp Summary187366 -Node: Reading Files188833 -Node: Records190927 -Node: awk split records191660 -Node: gawk split records196575 -Ref: gawk split records-Footnote-1201119 -Node: Fields201156 -Ref: Fields-Footnote-1203932 -Node: Nonconstant Fields204018 -Ref: Nonconstant Fields-Footnote-1206261 -Node: Changing Fields206465 -Node: Field Separators212394 -Node: Default Field Splitting215099 -Node: Regexp Field Splitting216216 -Node: Single Character Fields219566 -Node: Command Line Field Separator220625 -Node: Full Line Fields223837 -Ref: Full Line Fields-Footnote-1225354 -Ref: Full Line Fields-Footnote-2225400 -Node: Field Splitting Summary225501 -Node: Constant Size227575 -Node: Splitting By Content232164 -Ref: Splitting By Content-Footnote-1236158 -Node: Multiple Line236321 -Ref: Multiple Line-Footnote-1242207 -Node: Getline242386 -Node: Plain Getline244598 -Node: Getline/Variable247238 -Node: Getline/File248386 -Node: Getline/Variable/File249770 -Ref: Getline/Variable/File-Footnote-1251373 -Node: Getline/Pipe251460 -Node: Getline/Variable/Pipe254143 -Node: Getline/Coprocess255274 -Node: Getline/Variable/Coprocess256526 -Node: Getline Notes257265 -Node: Getline Summary260057 -Ref: table-getline-variants260469 -Node: Read Timeout261298 -Ref: Read Timeout-Footnote-1265123 -Node: Command-line directories265181 -Node: Input Summary266086 -Node: Input Exercises269387 -Node: Printing270115 -Node: Print271892 -Node: Print Examples273349 -Node: Output Separators276128 -Node: OFMT278146 -Node: Printf279500 -Node: Basic Printf280285 -Node: Control Letters281855 -Node: Format Modifiers285838 -Node: Printf Examples291847 -Node: Redirection294333 -Node: Special FD301174 -Ref: Special FD-Footnote-1304334 -Node: Special Files304408 -Node: Other Inherited Files305025 -Node: Special Network306025 -Node: Special Caveats306887 -Node: Close Files And Pipes307838 -Ref: Close Files And Pipes-Footnote-1315020 -Ref: Close Files And Pipes-Footnote-2315168 -Node: Output Summary315318 -Node: Output Exercises316316 -Node: Expressions316996 -Node: Values318181 -Node: Constants318859 -Node: Scalar Constants319550 -Ref: Scalar Constants-Footnote-1320409 -Node: Nondecimal-numbers320659 -Node: Regexp Constants323677 -Node: Using Constant Regexps324202 -Node: Variables327345 -Node: Using Variables328000 -Node: Assignment Options329911 -Node: Conversion331786 -Node: Strings And Numbers332310 -Ref: Strings And Numbers-Footnote-1335375 -Node: Locale influences conversions335484 -Ref: table-locale-affects338231 -Node: All Operators338819 -Node: Arithmetic Ops339449 -Node: Concatenation341954 -Ref: Concatenation-Footnote-1344773 -Node: Assignment Ops344879 -Ref: table-assign-ops349858 -Node: Increment Ops351130 -Node: Truth Values and Conditions354568 -Node: Truth Values355653 -Node: Typing and Comparison356702 -Node: Variable Typing357512 -Node: Comparison Operators361165 -Ref: table-relational-ops361575 -Node: POSIX String Comparison365070 -Ref: POSIX String Comparison-Footnote-1366142 -Node: Boolean Ops366280 -Ref: Boolean Ops-Footnote-1370759 -Node: Conditional Exp370850 -Node: Function Calls372577 -Node: Precedence376457 -Node: Locales380118 -Node: Expressions Summary381750 -Node: Patterns and Actions384310 -Node: Pattern Overview385430 -Node: Regexp Patterns387109 -Node: Expression Patterns387652 -Node: Ranges391362 -Node: BEGIN/END394468 -Node: Using BEGIN/END395229 -Ref: Using BEGIN/END-Footnote-1397963 -Node: I/O And BEGIN/END398069 -Node: BEGINFILE/ENDFILE400383 -Node: Empty403284 -Node: Using Shell Variables403601 -Node: Action Overview405874 -Node: Statements408200 -Node: If Statement410048 -Node: While Statement411543 -Node: Do Statement413572 -Node: For Statement414716 -Node: Switch Statement417873 -Node: Break Statement420255 -Node: Continue Statement422296 -Node: Next Statement424123 -Node: Nextfile Statement426504 -Node: Exit Statement429134 -Node: Built-in Variables431537 -Node: User-modified432670 -Ref: User-modified-Footnote-1440351 -Node: Auto-set440413 -Ref: Auto-set-Footnote-1454105 -Ref: Auto-set-Footnote-2454310 -Node: ARGC and ARGV454366 -Node: Pattern Action Summary458584 -Node: Arrays461011 -Node: Array Basics462340 -Node: Array Intro463184 -Ref: figure-array-elements465148 -Ref: Array Intro-Footnote-1467674 -Node: Reference to Elements467802 -Node: Assigning Elements470254 -Node: Array Example470745 -Node: Scanning an Array472503 -Node: Controlling Scanning475519 -Ref: Controlling Scanning-Footnote-1480715 -Node: Numeric Array Subscripts481031 -Node: Uninitialized Subscripts483216 -Node: Delete484833 -Ref: Delete-Footnote-1487576 -Node: Multidimensional487633 -Node: Multiscanning490730 -Node: Arrays of Arrays492319 -Node: Arrays Summary497078 -Node: Functions499170 -Node: Built-in500069 -Node: Calling Built-in501147 -Node: Numeric Functions503138 -Ref: Numeric Functions-Footnote-1507957 -Ref: Numeric Functions-Footnote-2508314 -Ref: Numeric Functions-Footnote-3508362 -Node: String Functions508634 -Ref: String Functions-Footnote-1532109 -Ref: String Functions-Footnote-2532238 -Ref: String Functions-Footnote-3532486 -Node: Gory Details532573 -Ref: table-sub-escapes534354 -Ref: table-sub-proposed535874 -Ref: table-posix-sub537238 -Ref: table-gensub-escapes538774 -Ref: Gory Details-Footnote-1539606 -Node: I/O Functions539757 -Ref: I/O Functions-Footnote-1546975 -Node: Time Functions547122 -Ref: Time Functions-Footnote-1557610 -Ref: Time Functions-Footnote-2557678 -Ref: Time Functions-Footnote-3557836 -Ref: Time Functions-Footnote-4557947 -Ref: Time Functions-Footnote-5558059 -Ref: Time Functions-Footnote-6558286 -Node: Bitwise Functions558552 -Ref: table-bitwise-ops559114 -Ref: Bitwise Functions-Footnote-1563423 -Node: Type Functions563592 -Node: I18N Functions564743 -Node: User-defined566388 -Node: Definition Syntax567193 -Ref: Definition Syntax-Footnote-1572600 -Node: Function Example572671 -Ref: Function Example-Footnote-1575590 -Node: Function Caveats575612 -Node: Calling A Function576130 -Node: Variable Scope577088 -Node: Pass By Value/Reference580076 -Node: Return Statement583571 -Node: Dynamic Typing586552 -Node: Indirect Calls587481 -Ref: Indirect Calls-Footnote-1598783 -Node: Functions Summary598911 -Node: Library Functions601613 -Ref: Library Functions-Footnote-1605222 -Ref: Library Functions-Footnote-2605365 -Node: Library Names605536 -Ref: Library Names-Footnote-1608990 -Ref: Library Names-Footnote-2609213 -Node: General Functions609299 -Node: Strtonum Function610402 -Node: Assert Function613424 -Node: Round Function616748 -Node: Cliff Random Function618289 -Node: Ordinal Functions619305 -Ref: Ordinal Functions-Footnote-1622368 -Ref: Ordinal Functions-Footnote-2622620 -Node: Join Function622831 -Ref: Join Function-Footnote-1624600 -Node: Getlocaltime Function624800 -Node: Readfile Function628544 -Node: Shell Quoting630514 -Node: Data File Management631915 -Node: Filetrans Function632547 -Node: Rewind Function636603 -Node: File Checking637990 -Ref: File Checking-Footnote-1639322 -Node: Empty Files639523 -Node: Ignoring Assigns641502 -Node: Getopt Function643053 -Ref: Getopt Function-Footnote-1654515 -Node: Passwd Functions654715 -Ref: Passwd Functions-Footnote-1663552 -Node: Group Functions663640 -Ref: Group Functions-Footnote-1671534 -Node: Walking Arrays671747 -Node: Library Functions Summary673350 -Node: Library Exercises674751 -Node: Sample Programs676031 -Node: Running Examples676801 -Node: Clones677529 -Node: Cut Program678753 -Node: Egrep Program688472 -Ref: Egrep Program-Footnote-1695970 -Node: Id Program696080 -Node: Split Program699725 -Ref: Split Program-Footnote-1703173 -Node: Tee Program703301 -Node: Uniq Program706090 -Node: Wc Program713509 -Ref: Wc Program-Footnote-1717759 -Node: Miscellaneous Programs717853 -Node: Dupword Program719066 -Node: Alarm Program721097 -Node: Translate Program725901 -Ref: Translate Program-Footnote-1730466 -Node: Labels Program730736 -Ref: Labels Program-Footnote-1734087 -Node: Word Sorting734171 -Node: History Sorting738242 -Node: Extract Program740078 -Node: Simple Sed747603 -Node: Igawk Program750671 -Ref: Igawk Program-Footnote-1764995 -Ref: Igawk Program-Footnote-2765196 -Ref: Igawk Program-Footnote-3765318 -Node: Anagram Program765433 -Node: Signature Program768490 -Node: Programs Summary769737 -Node: Programs Exercises770930 -Ref: Programs Exercises-Footnote-1775061 -Node: Advanced Features775152 -Node: Nondecimal Data777100 -Node: Array Sorting778690 -Node: Controlling Array Traversal779387 -Ref: Controlling Array Traversal-Footnote-1787720 -Node: Array Sorting Functions787838 -Ref: Array Sorting Functions-Footnote-1791727 -Node: Two-way I/O791923 -Ref: Two-way I/O-Footnote-1796868 -Ref: Two-way I/O-Footnote-2797054 -Node: TCP/IP Networking797136 -Node: Profiling800009 -Node: Advanced Features Summary808286 -Node: Internationalization810219 -Node: I18N and L10N811699 -Node: Explaining gettext812385 -Ref: Explaining gettext-Footnote-1817410 -Ref: Explaining gettext-Footnote-2817594 -Node: Programmer i18n817759 -Ref: Programmer i18n-Footnote-1822625 -Node: Translator i18n822674 -Node: String Extraction823468 -Ref: String Extraction-Footnote-1824599 -Node: Printf Ordering824685 -Ref: Printf Ordering-Footnote-1827471 -Node: I18N Portability827535 -Ref: I18N Portability-Footnote-1829990 -Node: I18N Example830053 -Ref: I18N Example-Footnote-1832856 -Node: Gawk I18N832928 -Node: I18N Summary833566 -Node: Debugger834905 -Node: Debugging835927 -Node: Debugging Concepts836368 -Node: Debugging Terms838221 -Node: Awk Debugging840793 -Node: Sample Debugging Session841687 -Node: Debugger Invocation842207 -Node: Finding The Bug843591 -Node: List of Debugger Commands850066 -Node: Breakpoint Control851399 -Node: Debugger Execution Control855095 -Node: Viewing And Changing Data858459 -Node: Execution Stack861837 -Node: Debugger Info863474 -Node: Miscellaneous Debugger Commands867491 -Node: Readline Support872520 -Node: Limitations873412 -Node: Debugging Summary875526 -Node: Arbitrary Precision Arithmetic876694 -Node: Computer Arithmetic878110 -Ref: table-numeric-ranges881708 -Ref: Computer Arithmetic-Footnote-1882567 -Node: Math Definitions882624 -Ref: table-ieee-formats885912 -Ref: Math Definitions-Footnote-1886516 -Node: MPFR features886621 -Node: FP Math Caution888292 -Ref: FP Math Caution-Footnote-1889342 -Node: Inexactness of computations889711 -Node: Inexact representation890670 -Node: Comparing FP Values892027 -Node: Errors accumulate893109 -Node: Getting Accuracy894542 -Node: Try To Round897204 -Node: Setting precision898103 -Ref: table-predefined-precision-strings898787 -Node: Setting the rounding mode900576 -Ref: table-gawk-rounding-modes900940 -Ref: Setting the rounding mode-Footnote-1904395 -Node: Arbitrary Precision Integers904574 -Ref: Arbitrary Precision Integers-Footnote-1909473 -Node: POSIX Floating Point Problems909622 -Ref: POSIX Floating Point Problems-Footnote-1913495 -Node: Floating point summary913533 -Node: Dynamic Extensions915727 -Node: Extension Intro917279 -Node: Plugin License918545 -Node: Extension Mechanism Outline919342 -Ref: figure-load-extension919770 -Ref: figure-register-new-function921250 -Ref: figure-call-new-function922254 -Node: Extension API Description924240 -Node: Extension API Functions Introduction925690 -Node: General Data Types930514 -Ref: General Data Types-Footnote-1936253 -Node: Memory Allocation Functions936552 -Ref: Memory Allocation Functions-Footnote-1939391 -Node: Constructor Functions939487 -Node: Registration Functions941221 -Node: Extension Functions941906 -Node: Exit Callback Functions944203 -Node: Extension Version String945451 -Node: Input Parsers946116 -Node: Output Wrappers955995 -Node: Two-way processors960510 -Node: Printing Messages962714 -Ref: Printing Messages-Footnote-1963790 -Node: Updating `ERRNO'963942 -Node: Requesting Values964682 -Ref: table-value-types-returned965410 -Node: Accessing Parameters966367 -Node: Symbol Table Access967598 -Node: Symbol table by name968112 -Node: Symbol table by cookie970093 -Ref: Symbol table by cookie-Footnote-1974237 -Node: Cached values974300 -Ref: Cached values-Footnote-1977799 -Node: Array Manipulation977890 -Ref: Array Manipulation-Footnote-1978988 -Node: Array Data Types979025 -Ref: Array Data Types-Footnote-1981680 -Node: Array Functions981772 -Node: Flattening Arrays985626 -Node: Creating Arrays992518 -Node: Extension API Variables997289 -Node: Extension Versioning997925 -Node: Extension API Informational Variables999826 -Node: Extension API Boilerplate1000891 -Node: Finding Extensions1004700 -Node: Extension Example1005260 -Node: Internal File Description1006032 -Node: Internal File Ops1010099 -Ref: Internal File Ops-Footnote-11021769 -Node: Using Internal File Ops1021909 -Ref: Using Internal File Ops-Footnote-11024292 -Node: Extension Samples1024565 -Node: Extension Sample File Functions1026091 -Node: Extension Sample Fnmatch1033729 -Node: Extension Sample Fork1035220 -Node: Extension Sample Inplace1036435 -Node: Extension Sample Ord1038110 -Node: Extension Sample Readdir1038946 -Ref: table-readdir-file-types1039822 -Node: Extension Sample Revout1040633 -Node: Extension Sample Rev2way1041223 -Node: Extension Sample Read write array1041963 -Node: Extension Sample Readfile1043903 -Node: Extension Sample Time1044998 -Node: Extension Sample API Tests1046347 -Node: gawkextlib1046838 -Node: Extension summary1049496 -Node: Extension Exercises1053185 -Node: Language History1053907 -Node: V7/SVR3.11055563 -Node: SVR41057744 -Node: POSIX1059189 -Node: BTL1060578 -Node: POSIX/GNU1061312 -Node: Feature History1066936 -Node: Common Extensions1080034 -Node: Ranges and Locales1081358 -Ref: Ranges and Locales-Footnote-11085976 -Ref: Ranges and Locales-Footnote-21086003 -Ref: Ranges and Locales-Footnote-31086237 -Node: Contributors1086458 -Node: History summary1091999 -Node: Installation1093369 -Node: Gawk Distribution1094315 -Node: Getting1094799 -Node: Extracting1095622 -Node: Distribution contents1097257 -Node: Unix Installation1103322 -Node: Quick Installation1104005 -Node: Shell Startup Files1106416 -Node: Additional Configuration Options1107495 -Node: Configuration Philosophy1109234 -Node: Non-Unix Installation1111603 -Node: PC Installation1112061 -Node: PC Binary Installation1113380 -Node: PC Compiling1115228 -Ref: PC Compiling-Footnote-11118249 -Node: PC Testing1118358 -Node: PC Using1119534 -Node: Cygwin1123649 -Node: MSYS1124472 -Node: VMS Installation1124972 -Node: VMS Compilation1125764 -Ref: VMS Compilation-Footnote-11126986 -Node: VMS Dynamic Extensions1127044 -Node: VMS Installation Details1128728 -Node: VMS Running1130980 -Node: VMS GNV1133816 -Node: VMS Old Gawk1134550 -Node: Bugs1135020 -Node: Other Versions1138903 -Node: Installation summary1145331 -Node: Notes1146387 -Node: Compatibility Mode1147252 -Node: Additions1148034 -Node: Accessing The Source1148959 -Node: Adding Code1150395 -Node: New Ports1156560 -Node: Derived Files1161042 -Ref: Derived Files-Footnote-11166517 -Ref: Derived Files-Footnote-21166551 -Ref: Derived Files-Footnote-31167147 -Node: Future Extensions1167261 -Node: Implementation Limitations1167867 -Node: Extension Design1169115 -Node: Old Extension Problems1170269 -Ref: Old Extension Problems-Footnote-11171786 -Node: Extension New Mechanism Goals1171843 -Ref: Extension New Mechanism Goals-Footnote-11175203 -Node: Extension Other Design Decisions1175392 -Node: Extension Future Growth1177500 -Node: Old Extension Mechanism1178336 -Node: Notes summary1180098 -Node: Basic Concepts1181284 -Node: Basic High Level1181965 -Ref: figure-general-flow1182237 -Ref: figure-process-flow1182836 -Ref: Basic High Level-Footnote-11186065 -Node: Basic Data Typing1186250 -Node: Glossary1189578 -Node: Copying1214736 -Node: GNU Free Documentation License1252292 -Node: Index1277428 +Node: Foreword446669 +Node: Preface48200 +Ref: Preface-Footnote-151071 +Ref: Preface-Footnote-251178 +Ref: Preface-Footnote-351411 +Node: History51553 +Node: Names53904 +Ref: Names-Footnote-154997 +Node: This Manual55143 +Ref: This Manual-Footnote-161643 +Node: Conventions61743 +Node: Manual History64080 +Ref: Manual History-Footnote-167073 +Ref: Manual History-Footnote-267114 +Node: How To Contribute67188 +Node: Acknowledgments68317 +Node: Getting Started73134 +Node: Running gawk75573 +Node: One-shot76763 +Node: Read Terminal78027 +Node: Long80058 +Node: Executable Scripts81571 +Ref: Executable Scripts-Footnote-184360 +Node: Comments84463 +Node: Quoting86945 +Node: DOS Quoting92463 +Node: Sample Data Files93138 +Node: Very Simple95733 +Node: Two Rules100632 +Node: More Complex102518 +Node: Statements/Lines105380 +Ref: Statements/Lines-Footnote-1109835 +Node: Other Features110100 +Node: When111031 +Ref: When-Footnote-1112785 +Node: Intro Summary112850 +Node: Invoking Gawk113733 +Node: Command Line115247 +Node: Options116045 +Ref: Options-Footnote-1131849 +Ref: Options-Footnote-2132078 +Node: Other Arguments132103 +Node: Naming Standard Input135051 +Node: Environment Variables136144 +Node: AWKPATH Variable136702 +Ref: AWKPATH Variable-Footnote-1140115 +Ref: AWKPATH Variable-Footnote-2140160 +Node: AWKLIBPATH Variable140420 +Node: Other Environment Variables141676 +Node: Exit Status145164 +Node: Include Files145840 +Node: Loading Shared Libraries149437 +Node: Obsolete150864 +Node: Undocumented151561 +Node: Invoking Summary151828 +Node: Regexp153492 +Node: Regexp Usage154946 +Node: Escape Sequences156983 +Node: Regexp Operators163224 +Ref: Regexp Operators-Footnote-1170650 +Ref: Regexp Operators-Footnote-2170797 +Node: Bracket Expressions170895 +Ref: table-char-classes172910 +Node: Leftmost Longest175834 +Node: Computed Regexps177136 +Node: GNU Regexp Operators180533 +Node: Case-sensitivity184206 +Ref: Case-sensitivity-Footnote-1187091 +Ref: Case-sensitivity-Footnote-2187326 +Node: Regexp Summary187434 +Node: Reading Files188901 +Node: Records190995 +Node: awk split records191728 +Node: gawk split records196643 +Ref: gawk split records-Footnote-1201187 +Node: Fields201224 +Ref: Fields-Footnote-1204000 +Node: Nonconstant Fields204086 +Ref: Nonconstant Fields-Footnote-1206329 +Node: Changing Fields206533 +Node: Field Separators212462 +Node: Default Field Splitting215167 +Node: Regexp Field Splitting216284 +Node: Single Character Fields219634 +Node: Command Line Field Separator220693 +Node: Full Line Fields223905 +Ref: Full Line Fields-Footnote-1225422 +Ref: Full Line Fields-Footnote-2225468 +Node: Field Splitting Summary225569 +Node: Constant Size227643 +Node: Splitting By Content232232 +Ref: Splitting By Content-Footnote-1236226 +Node: Multiple Line236389 +Ref: Multiple Line-Footnote-1242275 +Node: Getline242454 +Node: Plain Getline244666 +Node: Getline/Variable247306 +Node: Getline/File248454 +Node: Getline/Variable/File249838 +Ref: Getline/Variable/File-Footnote-1251441 +Node: Getline/Pipe251528 +Node: Getline/Variable/Pipe254211 +Node: Getline/Coprocess255342 +Node: Getline/Variable/Coprocess256594 +Node: Getline Notes257333 +Node: Getline Summary260125 +Ref: table-getline-variants260537 +Node: Read Timeout261366 +Ref: Read Timeout-Footnote-1265190 +Node: Command-line directories265248 +Node: Input Summary266153 +Node: Input Exercises269454 +Node: Printing270182 +Node: Print271959 +Node: Print Examples273416 +Node: Output Separators276195 +Node: OFMT278213 +Node: Printf279567 +Node: Basic Printf280352 +Node: Control Letters281922 +Node: Format Modifiers285905 +Node: Printf Examples291914 +Node: Redirection294400 +Node: Special FD301241 +Ref: Special FD-Footnote-1304401 +Node: Special Files304475 +Node: Other Inherited Files305092 +Node: Special Network306092 +Node: Special Caveats306954 +Node: Close Files And Pipes307905 +Ref: Close Files And Pipes-Footnote-1315087 +Ref: Close Files And Pipes-Footnote-2315235 +Node: Output Summary315385 +Node: Output Exercises316383 +Node: Expressions317063 +Node: Values318248 +Node: Constants318926 +Node: Scalar Constants319617 +Ref: Scalar Constants-Footnote-1320476 +Node: Nondecimal-numbers320726 +Node: Regexp Constants323744 +Node: Using Constant Regexps324269 +Node: Variables327412 +Node: Using Variables328067 +Node: Assignment Options329978 +Node: Conversion331853 +Node: Strings And Numbers332377 +Ref: Strings And Numbers-Footnote-1335442 +Node: Locale influences conversions335551 +Ref: table-locale-affects338298 +Node: All Operators338886 +Node: Arithmetic Ops339516 +Node: Concatenation342021 +Ref: Concatenation-Footnote-1344840 +Node: Assignment Ops344946 +Ref: table-assign-ops349925 +Node: Increment Ops351197 +Node: Truth Values and Conditions354635 +Node: Truth Values355720 +Node: Typing and Comparison356769 +Node: Variable Typing357579 +Node: Comparison Operators361232 +Ref: table-relational-ops361642 +Node: POSIX String Comparison365137 +Ref: POSIX String Comparison-Footnote-1366209 +Node: Boolean Ops366347 +Ref: Boolean Ops-Footnote-1370826 +Node: Conditional Exp370917 +Node: Function Calls372644 +Node: Precedence376524 +Node: Locales380185 +Node: Expressions Summary381817 +Node: Patterns and Actions384377 +Node: Pattern Overview385497 +Node: Regexp Patterns387176 +Node: Expression Patterns387719 +Node: Ranges391429 +Node: BEGIN/END394535 +Node: Using BEGIN/END395296 +Ref: Using BEGIN/END-Footnote-1398030 +Node: I/O And BEGIN/END398136 +Node: BEGINFILE/ENDFILE400450 +Node: Empty403351 +Node: Using Shell Variables403668 +Node: Action Overview405941 +Node: Statements408267 +Node: If Statement410115 +Node: While Statement411610 +Node: Do Statement413639 +Node: For Statement414783 +Node: Switch Statement417940 +Node: Break Statement420322 +Node: Continue Statement422363 +Node: Next Statement424190 +Node: Nextfile Statement426571 +Node: Exit Statement429201 +Node: Built-in Variables431604 +Node: User-modified432737 +Ref: User-modified-Footnote-1440418 +Node: Auto-set440480 +Ref: Auto-set-Footnote-1454172 +Ref: Auto-set-Footnote-2454377 +Node: ARGC and ARGV454433 +Node: Pattern Action Summary458651 +Node: Arrays461078 +Node: Array Basics462407 +Node: Array Intro463251 +Ref: figure-array-elements465215 +Ref: Array Intro-Footnote-1467741 +Node: Reference to Elements467869 +Node: Assigning Elements470321 +Node: Array Example470812 +Node: Scanning an Array472570 +Node: Controlling Scanning475586 +Ref: Controlling Scanning-Footnote-1480782 +Node: Numeric Array Subscripts481098 +Node: Uninitialized Subscripts483283 +Node: Delete484900 +Ref: Delete-Footnote-1487643 +Node: Multidimensional487700 +Node: Multiscanning490797 +Node: Arrays of Arrays492386 +Node: Arrays Summary497145 +Node: Functions499237 +Node: Built-in500136 +Node: Calling Built-in501214 +Node: Numeric Functions503205 +Ref: Numeric Functions-Footnote-1508024 +Ref: Numeric Functions-Footnote-2508381 +Ref: Numeric Functions-Footnote-3508429 +Node: String Functions508701 +Ref: String Functions-Footnote-1532176 +Ref: String Functions-Footnote-2532305 +Ref: String Functions-Footnote-3532553 +Node: Gory Details532640 +Ref: table-sub-escapes534421 +Ref: table-sub-proposed535941 +Ref: table-posix-sub537305 +Ref: table-gensub-escapes538841 +Ref: Gory Details-Footnote-1539673 +Node: I/O Functions539824 +Ref: I/O Functions-Footnote-1547042 +Node: Time Functions547189 +Ref: Time Functions-Footnote-1557677 +Ref: Time Functions-Footnote-2557745 +Ref: Time Functions-Footnote-3557903 +Ref: Time Functions-Footnote-4558014 +Ref: Time Functions-Footnote-5558126 +Ref: Time Functions-Footnote-6558353 +Node: Bitwise Functions558619 +Ref: table-bitwise-ops559181 +Ref: Bitwise Functions-Footnote-1563490 +Node: Type Functions563659 +Node: I18N Functions564810 +Node: User-defined566455 +Node: Definition Syntax567260 +Ref: Definition Syntax-Footnote-1572667 +Node: Function Example572738 +Ref: Function Example-Footnote-1575657 +Node: Function Caveats575679 +Node: Calling A Function576197 +Node: Variable Scope577155 +Node: Pass By Value/Reference580143 +Node: Return Statement583638 +Node: Dynamic Typing586619 +Node: Indirect Calls587548 +Ref: Indirect Calls-Footnote-1598850 +Node: Functions Summary598978 +Node: Library Functions601680 +Ref: Library Functions-Footnote-1605289 +Ref: Library Functions-Footnote-2605432 +Node: Library Names605603 +Ref: Library Names-Footnote-1609057 +Ref: Library Names-Footnote-2609280 +Node: General Functions609366 +Node: Strtonum Function610469 +Node: Assert Function613491 +Node: Round Function616815 +Node: Cliff Random Function618356 +Node: Ordinal Functions619372 +Ref: Ordinal Functions-Footnote-1622435 +Ref: Ordinal Functions-Footnote-2622687 +Node: Join Function622898 +Ref: Join Function-Footnote-1624667 +Node: Getlocaltime Function624867 +Node: Readfile Function628611 +Node: Shell Quoting630581 +Node: Data File Management631982 +Node: Filetrans Function632614 +Node: Rewind Function636670 +Node: File Checking638057 +Ref: File Checking-Footnote-1639389 +Node: Empty Files639590 +Node: Ignoring Assigns641569 +Node: Getopt Function643120 +Ref: Getopt Function-Footnote-1654582 +Node: Passwd Functions654782 +Ref: Passwd Functions-Footnote-1663619 +Node: Group Functions663707 +Ref: Group Functions-Footnote-1671601 +Node: Walking Arrays671814 +Node: Library Functions Summary673417 +Node: Library Exercises674818 +Node: Sample Programs676098 +Node: Running Examples676868 +Node: Clones677596 +Node: Cut Program678820 +Node: Egrep Program688539 +Ref: Egrep Program-Footnote-1696037 +Node: Id Program696147 +Node: Split Program699792 +Ref: Split Program-Footnote-1703240 +Node: Tee Program703368 +Node: Uniq Program706157 +Node: Wc Program713576 +Ref: Wc Program-Footnote-1717826 +Node: Miscellaneous Programs717920 +Node: Dupword Program719133 +Node: Alarm Program721164 +Node: Translate Program725968 +Ref: Translate Program-Footnote-1730533 +Node: Labels Program730803 +Ref: Labels Program-Footnote-1734154 +Node: Word Sorting734238 +Node: History Sorting738309 +Node: Extract Program740145 +Node: Simple Sed747670 +Node: Igawk Program750738 +Ref: Igawk Program-Footnote-1765062 +Ref: Igawk Program-Footnote-2765263 +Ref: Igawk Program-Footnote-3765385 +Node: Anagram Program765500 +Node: Signature Program768557 +Node: Programs Summary769804 +Node: Programs Exercises770997 +Ref: Programs Exercises-Footnote-1775128 +Node: Advanced Features775219 +Node: Nondecimal Data777167 +Node: Array Sorting778757 +Node: Controlling Array Traversal779454 +Ref: Controlling Array Traversal-Footnote-1787787 +Node: Array Sorting Functions787905 +Ref: Array Sorting Functions-Footnote-1791794 +Node: Two-way I/O791990 +Ref: Two-way I/O-Footnote-1796935 +Ref: Two-way I/O-Footnote-2797121 +Node: TCP/IP Networking797203 +Node: Profiling800076 +Node: Advanced Features Summary808353 +Node: Internationalization810286 +Node: I18N and L10N811766 +Node: Explaining gettext812452 +Ref: Explaining gettext-Footnote-1817477 +Ref: Explaining gettext-Footnote-2817661 +Node: Programmer i18n817826 +Ref: Programmer i18n-Footnote-1822692 +Node: Translator i18n822741 +Node: String Extraction823535 +Ref: String Extraction-Footnote-1824666 +Node: Printf Ordering824752 +Ref: Printf Ordering-Footnote-1827538 +Node: I18N Portability827602 +Ref: I18N Portability-Footnote-1830057 +Node: I18N Example830120 +Ref: I18N Example-Footnote-1832923 +Node: Gawk I18N832995 +Node: I18N Summary833633 +Node: Debugger834972 +Node: Debugging835994 +Node: Debugging Concepts836435 +Node: Debugging Terms838288 +Node: Awk Debugging840860 +Node: Sample Debugging Session841754 +Node: Debugger Invocation842274 +Node: Finding The Bug843658 +Node: List of Debugger Commands850133 +Node: Breakpoint Control851466 +Node: Debugger Execution Control855162 +Node: Viewing And Changing Data858526 +Node: Execution Stack861904 +Node: Debugger Info863541 +Node: Miscellaneous Debugger Commands867558 +Node: Readline Support872587 +Node: Limitations873479 +Node: Debugging Summary875593 +Node: Arbitrary Precision Arithmetic876761 +Node: Computer Arithmetic878177 +Ref: table-numeric-ranges881775 +Ref: Computer Arithmetic-Footnote-1882634 +Node: Math Definitions882691 +Ref: table-ieee-formats885979 +Ref: Math Definitions-Footnote-1886583 +Node: MPFR features886688 +Node: FP Math Caution888359 +Ref: FP Math Caution-Footnote-1889409 +Node: Inexactness of computations889778 +Node: Inexact representation890737 +Node: Comparing FP Values892094 +Node: Errors accumulate893176 +Node: Getting Accuracy894609 +Node: Try To Round897271 +Node: Setting precision898170 +Ref: table-predefined-precision-strings898854 +Node: Setting the rounding mode900643 +Ref: table-gawk-rounding-modes901007 +Ref: Setting the rounding mode-Footnote-1904462 +Node: Arbitrary Precision Integers904641 +Ref: Arbitrary Precision Integers-Footnote-1909540 +Node: POSIX Floating Point Problems909689 +Ref: POSIX Floating Point Problems-Footnote-1913562 +Node: Floating point summary913600 +Node: Dynamic Extensions915794 +Node: Extension Intro917346 +Node: Plugin License918612 +Node: Extension Mechanism Outline919409 +Ref: figure-load-extension919837 +Ref: figure-register-new-function921317 +Ref: figure-call-new-function922321 +Node: Extension API Description924307 +Node: Extension API Functions Introduction925757 +Node: General Data Types930581 +Ref: General Data Types-Footnote-1936320 +Node: Memory Allocation Functions936619 +Ref: Memory Allocation Functions-Footnote-1939458 +Node: Constructor Functions939554 +Node: Registration Functions941288 +Node: Extension Functions941973 +Node: Exit Callback Functions944270 +Node: Extension Version String945518 +Node: Input Parsers946183 +Node: Output Wrappers956062 +Node: Two-way processors960577 +Node: Printing Messages962781 +Ref: Printing Messages-Footnote-1963857 +Node: Updating `ERRNO'964009 +Node: Requesting Values964749 +Ref: table-value-types-returned965477 +Node: Accessing Parameters966434 +Node: Symbol Table Access967665 +Node: Symbol table by name968179 +Node: Symbol table by cookie970160 +Ref: Symbol table by cookie-Footnote-1974304 +Node: Cached values974367 +Ref: Cached values-Footnote-1977866 +Node: Array Manipulation977957 +Ref: Array Manipulation-Footnote-1979055 +Node: Array Data Types979092 +Ref: Array Data Types-Footnote-1981747 +Node: Array Functions981839 +Node: Flattening Arrays985693 +Node: Creating Arrays992585 +Node: Extension API Variables997356 +Node: Extension Versioning997992 +Node: Extension API Informational Variables999893 +Node: Extension API Boilerplate1000958 +Node: Finding Extensions1004767 +Node: Extension Example1005327 +Node: Internal File Description1006099 +Node: Internal File Ops1010166 +Ref: Internal File Ops-Footnote-11021836 +Node: Using Internal File Ops1021976 +Ref: Using Internal File Ops-Footnote-11024359 +Node: Extension Samples1024632 +Node: Extension Sample File Functions1026158 +Node: Extension Sample Fnmatch1033796 +Node: Extension Sample Fork1035287 +Node: Extension Sample Inplace1036502 +Node: Extension Sample Ord1038177 +Node: Extension Sample Readdir1039013 +Ref: table-readdir-file-types1039889 +Node: Extension Sample Revout1040700 +Node: Extension Sample Rev2way1041290 +Node: Extension Sample Read write array1042030 +Node: Extension Sample Readfile1043970 +Node: Extension Sample Time1045065 +Node: Extension Sample API Tests1046414 +Node: gawkextlib1046905 +Node: Extension summary1049563 +Node: Extension Exercises1053252 +Node: Language History1053974 +Node: V7/SVR3.11055630 +Node: SVR41057811 +Node: POSIX1059256 +Node: BTL1060645 +Node: POSIX/GNU1061379 +Node: Feature History1067003 +Node: Common Extensions1080101 +Node: Ranges and Locales1081425 +Ref: Ranges and Locales-Footnote-11086043 +Ref: Ranges and Locales-Footnote-21086070 +Ref: Ranges and Locales-Footnote-31086304 +Node: Contributors1086525 +Node: History summary1092066 +Node: Installation1093436 +Node: Gawk Distribution1094382 +Node: Getting1094866 +Node: Extracting1095689 +Node: Distribution contents1097324 +Node: Unix Installation1103389 +Node: Quick Installation1104072 +Node: Shell Startup Files1106483 +Node: Additional Configuration Options1107562 +Node: Configuration Philosophy1109301 +Node: Non-Unix Installation1111670 +Node: PC Installation1112128 +Node: PC Binary Installation1113447 +Node: PC Compiling1115295 +Ref: PC Compiling-Footnote-11118316 +Node: PC Testing1118425 +Node: PC Using1119601 +Node: Cygwin1123716 +Node: MSYS1124539 +Node: VMS Installation1125039 +Node: VMS Compilation1125831 +Ref: VMS Compilation-Footnote-11127053 +Node: VMS Dynamic Extensions1127111 +Node: VMS Installation Details1128795 +Node: VMS Running1131047 +Node: VMS GNV1133883 +Node: VMS Old Gawk1134617 +Node: Bugs1135087 +Node: Other Versions1138970 +Node: Installation summary1145398 +Node: Notes1146454 +Node: Compatibility Mode1147319 +Node: Additions1148101 +Node: Accessing The Source1149026 +Node: Adding Code1150462 +Node: New Ports1156627 +Node: Derived Files1161109 +Ref: Derived Files-Footnote-11166584 +Ref: Derived Files-Footnote-21166618 +Ref: Derived Files-Footnote-31167214 +Node: Future Extensions1167328 +Node: Implementation Limitations1167934 +Node: Extension Design1169182 +Node: Old Extension Problems1170336 +Ref: Old Extension Problems-Footnote-11171853 +Node: Extension New Mechanism Goals1171910 +Ref: Extension New Mechanism Goals-Footnote-11175270 +Node: Extension Other Design Decisions1175459 +Node: Extension Future Growth1177567 +Node: Old Extension Mechanism1178403 +Node: Notes summary1180165 +Node: Basic Concepts1181351 +Node: Basic High Level1182032 +Ref: figure-general-flow1182304 +Ref: figure-process-flow1182903 +Ref: Basic High Level-Footnote-11186132 +Node: Basic Data Typing1186317 +Node: Glossary1189645 +Node: Copying1214803 +Node: GNU Free Documentation License1252359 +Node: Index1277495 End Tag Table |