diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1142 |
1 files changed, 675 insertions, 467 deletions
diff --git a/doc/gawk.info b/doc/gawk.info index 9847e6be..4c422294 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -4042,6 +4042,7 @@ have to be named on the `awk' command line (*note Getline::). * Read Timeout:: Reading input with a timeout. * Command line directories:: What happens if you put a directory on the command line. +* Input Summary:: Input summary. File: gawk.info, Node: Records, Next: Fields, Up: Reading Files @@ -5829,7 +5830,7 @@ writing. (1) This assumes that standard input is the keyboard. -File: gawk.info, Node: Command line directories, Prev: Read Timeout, Up: Reading Files +File: gawk.info, Node: Command line directories, Next: Input Summary, Prev: Read Timeout, Up: Reading Files 4.11 Directories On The Command Line ==================================== @@ -5852,6 +5853,75 @@ error. usable data from an `awk' program. +File: gawk.info, Node: Input Summary, Prev: Command line directories, Up: Reading Files + +4.12 Summary +============ + + * Input is split into records based on the value of `RS'. The + possibilities are as follows: + + Value of `RS' Records are split on `awk' / `gawk' + ---------------------------------------------------------------------- + Any single That character `awk' + character + The empty string Runs of two or more `awk' + (`""') newlines + A regexp Text that matches the `gawk' + regexp + + * `gawk' sets `RT' to the text matched by `RS'. + + * After splitting the input into records, `awk' further splits the + record into individual fields, named `$1', `$2' and so on. `$0' is + the whole record, and `NF' indicates how many fields there are. + The default way to split fields is between whitespace characters. + + * Fields may be referenced using a variable, as in `$NF'. Fields + may also be assigned values, which causes the value of `$0' to be + recomputed when it is later referenced. Assigning to a field with + a number greater than `NF' creates the field and rebuilds the + record, using `OFS' to separate the fields. Incrementing `NF' + does the same thing. Decrementing `NF' throws away fields and + rebuilds the record. + + * Field splitting is more complicated than record splitting. + + Field separator value Fields are split ... `awk' / + `gawk' + ---------------------------------------------------------------------- + `FS == " "' On runs of whitespace `awk' + `FS == ANY SINGLE On that character `awk' + CHARACTER' + `FS == REGEXP' On text matching the `awk' + regexp + `FS == ""' Each individual character `gawk' + is a separate field + `FIELDWIDTHS == LIST OF Based on character `gawk' + COLUMNS' position + `FPAT == REGEXP' On text around text `gawk' + matching the regexp + + Using `FS = "\n"' causes the entire record to be a single field + (assuming that newlines separate records). + + * `FS' may be set from the command line using the `-F' option. This + can also be done using command-line variable assignment. + + * `PROCINFO["FS"]' can be used to see how fields are being split. + + * Use `getline' in its varioius forms to read additional records, + from the default input stream, from a file, or from a pipe or + co-process. + + * Use `PROCINFO[FILE, "READ_TIMEOUT"]' to cause reads to timeout for + FILE. + + * Directories on the command line are fatal for standard `awk'; + `gawk' ignores them if not in POSIX mode. + + + File: gawk.info, Node: Printing, Next: Expressions, Prev: Reading Files, Up: Top 5 Printing Output @@ -5885,6 +5955,7 @@ function. `gawk' allows access to inherited file descriptors. * Close Files And Pipes:: Closing Input and Output Files and Pipes. +* Output Summary:: Output summary. File: gawk.info, Node: Print, Next: Print Examples, Up: Printing @@ -6776,7 +6847,7 @@ that `gawk' provides: behavior. -File: gawk.info, Node: Close Files And Pipes, Prev: Special Files, Up: Printing +File: gawk.info, Node: Close Files And Pipes, Next: Output Summary, Prev: Special Files, Up: Printing 5.8 Closing Input and Output Redirections ========================================= @@ -6943,6 +7014,32 @@ call. See the system manual pages for information on how to decode this value. +File: gawk.info, Node: Output Summary, Prev: Close Files And Pipes, Up: Printing + +5.9 Summary +=========== + + * The `print' statement prints comma-separated expressions. Each + expression is separated by the value of `OFS' and terminated by + the value of `ORS'. `OFMT' provides the conversion format for + numeric values for the `print' statement. + + * The `printf' statement provides finer-grained control over output, + with format control letters for different data types and various + flags that modify the behavior of the format control letters. + + * Output from both `print' and `printf' may be redirected to files, + pipes, and co-processes. + + * `gawk' provides special file names for access to standard input, + output and error, and for network communications. + + * Use `close()' to close open file, pipe and co-process redirections. + For co-processes, it is possible to close only one direction of the + communications. + + + File: gawk.info, Node: Expressions, Next: Patterns and Actions, Prev: Printing, Up: Top 6 Expressions @@ -6968,6 +7065,7 @@ operators. * Function Calls:: A function call is an expression. * Precedence:: How various operators nest. * Locales:: How the locale affects things. +* Expressions Summary:: Expressions summary. File: gawk.info, Node: Values, Next: All Operators, Up: Expressions @@ -8516,7 +8614,7 @@ String Concatenation POSIX. For maximum portability, do not use them. -File: gawk.info, Node: Locales, Prev: Precedence, Up: Expressions +File: gawk.info, Node: Locales, Next: Expressions Summary, Prev: Precedence, Up: Expressions 6.6 Where You Are Makes A Difference ==================================== @@ -8552,6 +8650,62 @@ used when `gawk' parses input data. This is discussed in detail in *note Conversion::. +File: gawk.info, Node: Expressions Summary, Prev: Locales, Up: Expressions + +6.7 Summary +=========== + + * Expressions are the basic elements of computation in programs. + They are built from constants, variables, function calls and + combinations of the various kinds of values with operators. + + * `awk' supplies three kinds of constants: numeric, string, and + regexp. `gawk' lets you specify numeric constants in octal and + hexadecimal (bases 8 and 16) in addition to decimal (base 10). In + certain contexts, a standalone regexp constant such as `/foo/' has + the same meaning as `$0 ~ /foo/'. + + * Variables hold values between uses in computations. A number of + built-in variables provide information to your `awk' program, and + a number of others let you control how `awk' behaves. + + * Numbers are automatically converted to strings, and strings to + numbers, as needed by `awk'. Numeric values are converted as if + they were formatted with `sprintf()' using the format in `CONVFMT'. + + * `awk' provides the usual arithmetic operators (addition, + subtraction, multiplication, division, modulus), and unary plus + and minus. It also provides comparison operators, boolean + operators, and regexp matching operators. String concatenation is + accomplished by placing two expressions next to each other; there + is no explicit operator. The three-operand `?:' operator provides + an "if-else" test within expressions. + + * Assignment operators provide convenient shorthands for common + arithmetic operations. + + * In `awk', a value is considered to be true if it is non-zero _or_ + non-null. Otherwise, the value is false. + + * A value's type is set upon each assignment and may change over its + lifetime. The type determines how it behaves in comparisons + (string or numeric). + + * Function calls return a value which may be used as part of a larger + expression. Expressions used to pass parameter values are fully + evaluated before the function is called. `awk' provides built-in + and user-defined functions; this is described later on in this + Info file. + + * Operator precedence specifies the order in which operations are + performed, unless explicitly overridden by parentheses. `awk''s + operator precedence is compatible with that of C. + + * Locales can affect the format of data as output by an `awk' + program, and occasionally the format for data read as input. + + + File: gawk.info, Node: Patterns and Actions, Next: Arrays, Prev: Expressions, Up: Top 7 Patterns, Actions, and Variables @@ -8575,6 +8729,7 @@ top of. Now it's time to start building something useful. * Statements:: Describes the various control statements in detail. * Built-in Variables:: Summarizes the built-in variables. +* Pattern Action Summary:: Patterns and Actions summary. File: gawk.info, Node: Pattern Overview, Next: Using Shell Variables, Up: Patterns and Actions @@ -9667,7 +9822,7 @@ statement with a nonzero argument, as shown in the following example: systems. -File: gawk.info, Node: Built-in Variables, Prev: Statements, Up: Patterns and Actions +File: gawk.info, Node: Built-in Variables, Next: Pattern Action Summary, Prev: Statements, Up: Patterns and Actions 7.5 Built-in Variables ====================== @@ -10293,6 +10448,55 @@ are passed on to the `awk' program. (*Note Getopt Function::, for an `awk' library function that parses command-line options.) +File: gawk.info, Node: Pattern Action Summary, Prev: Built-in Variables, Up: Patterns and Actions + +7.6 Summary +=========== + + * Pattern-action pairs make up the basic elements of an `awk' + program. Patterns are either normal expressions, range + expressions, regexp constants, one of the special keywords + `BEGIN', `END', `BEGINFILE', `ENDFILE', or empty. The action + executes if the current record matches the pattern. Empty + (missing) patterns match all records. + + * I/O from `BEGIN' and `END' rules have certain constraints. This + is also true, only more so, for `BEGINFILE' and `ENDFILE' rules. + The latter two give you "hooks" into `gawk''s file processing, + allowing you to recover from a file that otherwise would cause a + fatal error (such as a file that cannot be opened). + + * Shell variables can be used in `awk' programs by careful use of + shell quoting. It is easier to pass a shell variable into `awk' + by using the `-v' option and an `awk' variable. + + * Actions consist of statements enclosed in curly braces. Statements + are built up from expressions, control statements, compound + statements, input and output statements, and deletion statements. + + * The control statements in `awk' are `if'-`else', `while', `for', + and `do'-`while'. `gawk' adds the `switch' statement. There are + two flavors of `for' statement: one for for performing general + looping, and the other iterating through an array. + + * `break' and `continue' let you exit early or start the next + iteration of a loop (or get out of a `switch'). + + * `next' and `nextfile' let you read the next record and start over + at the top of your program, or skip to the next input file and + start over, respectively. + + * The `exit' statement terminates your program. When executed from + an action (or function body) it transfers control to the `END' + statements. From an `END' statement body, it exits immediately. + You may pass an optional numeric value to be used at `awk''s exit + status. + + * Some built-in variables provide control over `awk', mainly for I/O. + Other variables convey information from `awk' to your program. + + + File: gawk.info, Node: Arrays, Next: Functions, Prev: Patterns and Actions, Up: Top 8 Arrays in `awk' @@ -33411,468 +33615,472 @@ Node: Leftmost Longest176154 Node: Computed Regexps177355 Node: Regexp Summary180727 Node: Reading Files182199 -Node: Records184201 -Node: awk split records184944 -Node: gawk split records189802 -Ref: gawk split records-Footnote-1194323 -Node: Fields194360 -Ref: Fields-Footnote-1197324 -Node: Nonconstant Fields197410 -Ref: Nonconstant Fields-Footnote-1199640 -Node: Changing Fields199842 -Node: Field Separators205796 -Node: Default Field Splitting208498 -Node: Regexp Field Splitting209615 -Node: Single Character Fields212956 -Node: Command Line Field Separator214015 -Node: Full Line Fields217357 -Ref: Full Line Fields-Footnote-1217865 -Node: Field Splitting Summary217911 -Ref: Field Splitting Summary-Footnote-1221010 -Node: Constant Size221111 -Node: Splitting By Content225718 -Ref: Splitting By Content-Footnote-1229468 -Node: Multiple Line229508 -Ref: Multiple Line-Footnote-1235364 -Node: Getline235543 -Node: Plain Getline237759 -Node: Getline/Variable239854 -Node: Getline/File241001 -Node: Getline/Variable/File242377 -Ref: Getline/Variable/File-Footnote-1243976 -Node: Getline/Pipe244063 -Node: Getline/Variable/Pipe246762 -Node: Getline/Coprocess247869 -Node: Getline/Variable/Coprocess249121 -Node: Getline Notes249858 -Node: Getline Summary252662 -Ref: table-getline-variants253070 -Node: Read Timeout253982 -Ref: Read Timeout-Footnote-1257809 -Node: Command line directories257867 -Node: Printing258749 -Node: Print260373 -Node: Print Examples261714 -Node: Output Separators264493 -Node: OFMT266509 -Node: Printf267867 -Node: Basic Printf268773 -Node: Control Letters270312 -Node: Format Modifiers274166 -Node: Printf Examples280193 -Node: Redirection282900 -Node: Special Files289847 -Node: Special FD290363 -Ref: Special FD-Footnote-1293938 -Node: Special Network294012 -Node: Special Caveats294848 -Node: Close Files And Pipes295623 -Ref: Close Files And Pipes-Footnote-1302739 -Ref: Close Files And Pipes-Footnote-2302887 -Node: Expressions303037 -Node: Values304169 -Node: Constants304845 -Node: Scalar Constants305525 -Ref: Scalar Constants-Footnote-1306384 -Node: Nondecimal-numbers306634 -Node: Regexp Constants309634 -Node: Using Constant Regexps310109 -Node: Variables313179 -Node: Using Variables313834 -Node: Assignment Options315558 -Node: Conversion317425 -Ref: table-locale-affects322861 -Ref: Conversion-Footnote-1323485 -Node: All Operators323594 -Node: Arithmetic Ops324224 -Node: Concatenation326729 -Ref: Concatenation-Footnote-1329525 -Node: Assignment Ops329645 -Ref: table-assign-ops334628 -Node: Increment Ops335945 -Node: Truth Values and Conditions339383 -Node: Truth Values340466 -Node: Typing and Comparison341515 -Node: Variable Typing342308 -Ref: Variable Typing-Footnote-1346208 -Node: Comparison Operators346330 -Ref: table-relational-ops346740 -Node: POSIX String Comparison350290 -Ref: POSIX String Comparison-Footnote-1351374 -Node: Boolean Ops351512 -Ref: Boolean Ops-Footnote-1355582 -Node: Conditional Exp355673 -Node: Function Calls357400 -Node: Precedence361158 -Node: Locales364827 -Node: Patterns and Actions366430 -Node: Pattern Overview367484 -Node: Regexp Patterns369161 -Node: Expression Patterns369704 -Node: Ranges373485 -Node: BEGIN/END376591 -Node: Using BEGIN/END377353 -Ref: Using BEGIN/END-Footnote-1380089 -Node: I/O And BEGIN/END380195 -Node: BEGINFILE/ENDFILE382480 -Node: Empty385411 -Node: Using Shell Variables385728 -Node: Action Overview388011 -Node: Statements390338 -Node: If Statement392186 -Node: While Statement393684 -Node: Do Statement395728 -Node: For Statement396884 -Node: Switch Statement400036 -Node: Break Statement402139 -Node: Continue Statement404194 -Node: Next Statement405987 -Node: Nextfile Statement408377 -Node: Exit Statement411032 -Node: Built-in Variables413436 -Node: User-modified414532 -Ref: User-modified-Footnote-1422217 -Node: Auto-set422279 -Ref: Auto-set-Footnote-1435162 -Ref: Auto-set-Footnote-2435367 -Node: ARGC and ARGV435423 -Node: Arrays439262 -Node: Array Basics440760 -Node: Array Intro441586 -Ref: figure-array-elements443559 -Node: Reference to Elements445966 -Node: Assigning Elements448239 -Node: Array Example448730 -Node: Scanning an Array450462 -Node: Controlling Scanning453477 -Ref: Controlling Scanning-Footnote-1458650 -Node: Delete458966 -Ref: Delete-Footnote-1461731 -Node: Numeric Array Subscripts461788 -Node: Uninitialized Subscripts463971 -Node: Multidimensional465596 -Node: Multiscanning468689 -Node: Arrays of Arrays470278 -Node: Functions474918 -Node: Built-in475737 -Node: Calling Built-in476815 -Node: Numeric Functions478803 -Ref: Numeric Functions-Footnote-1482637 -Ref: Numeric Functions-Footnote-2482994 -Ref: Numeric Functions-Footnote-3483042 -Node: String Functions483311 -Ref: String Functions-Footnote-1506322 -Ref: String Functions-Footnote-2506451 -Ref: String Functions-Footnote-3506699 -Node: Gory Details506786 -Ref: table-sub-escapes508455 -Ref: table-sub-posix-92509809 -Ref: table-sub-proposed511160 -Ref: table-posix-sub512514 -Ref: table-gensub-escapes514059 -Ref: Gory Details-Footnote-1515235 -Ref: Gory Details-Footnote-2515286 -Node: I/O Functions515437 -Ref: I/O Functions-Footnote-1522560 -Node: Time Functions522707 -Ref: Time Functions-Footnote-1533171 -Ref: Time Functions-Footnote-2533239 -Ref: Time Functions-Footnote-3533397 -Ref: Time Functions-Footnote-4533508 -Ref: Time Functions-Footnote-5533620 -Ref: Time Functions-Footnote-6533847 -Node: Bitwise Functions534113 -Ref: table-bitwise-ops534675 -Ref: Bitwise Functions-Footnote-1538920 -Node: Type Functions539104 -Node: I18N Functions540246 -Node: User-defined541891 -Node: Definition Syntax542695 -Ref: Definition Syntax-Footnote-1547620 -Node: Function Example547689 -Ref: Function Example-Footnote-1550333 -Node: Function Caveats550355 -Node: Calling A Function550873 -Node: Variable Scope551828 -Node: Pass By Value/Reference554816 -Node: Return Statement558324 -Node: Dynamic Typing561308 -Node: Indirect Calls562237 -Node: Library Functions571924 -Ref: Library Functions-Footnote-1575437 -Ref: Library Functions-Footnote-2575580 -Node: Library Names575751 -Ref: Library Names-Footnote-1579224 -Ref: Library Names-Footnote-2579444 -Node: General Functions579530 -Node: Strtonum Function580558 -Node: Assert Function583488 -Node: Round Function586814 -Node: Cliff Random Function588355 -Node: Ordinal Functions589371 -Ref: Ordinal Functions-Footnote-1592448 -Ref: Ordinal Functions-Footnote-2592700 -Node: Join Function592911 -Ref: Join Function-Footnote-1594682 -Node: Getlocaltime Function594882 -Node: Readfile Function598618 -Node: Data File Management600457 -Node: Filetrans Function601089 -Node: Rewind Function605144 -Node: File Checking606531 -Ref: File Checking-Footnote-1607663 -Node: Empty Files607864 -Node: Ignoring Assigns610087 -Node: Getopt Function611618 -Ref: Getopt Function-Footnote-1622914 -Node: Passwd Functions623117 -Ref: Passwd Functions-Footnote-1632096 -Node: Group Functions632184 -Ref: Group Functions-Footnote-1640126 -Node: Walking Arrays640339 -Node: Sample Programs642475 -Node: Running Examples643149 -Node: Clones643877 -Node: Cut Program645101 -Node: Egrep Program654962 -Ref: Egrep Program-Footnote-1662891 -Node: Id Program663001 -Node: Split Program666665 -Ref: Split Program-Footnote-1670196 -Node: Tee Program670324 -Node: Uniq Program673131 -Node: Wc Program680561 -Ref: Wc Program-Footnote-1684829 -Ref: Wc Program-Footnote-2685029 -Node: Miscellaneous Programs685121 -Node: Dupword Program686309 -Node: Alarm Program688340 -Node: Translate Program693154 -Ref: Translate Program-Footnote-1697545 -Ref: Translate Program-Footnote-2697815 -Node: Labels Program697949 -Ref: Labels Program-Footnote-1701320 -Node: Word Sorting701404 -Node: History Sorting705447 -Node: Extract Program707283 -Ref: Extract Program-Footnote-1714858 -Node: Simple Sed714987 -Node: Igawk Program718049 -Ref: Igawk Program-Footnote-1733225 -Ref: Igawk Program-Footnote-2733426 -Node: Anagram Program733564 -Node: Signature Program736632 -Node: Advanced Features737879 -Node: Nondecimal Data739765 -Node: Array Sorting741342 -Node: Controlling Array Traversal742039 -Node: Array Sorting Functions750319 -Ref: Array Sorting Functions-Footnote-1754226 -Node: Two-way I/O754420 -Ref: Two-way I/O-Footnote-1759936 -Node: TCP/IP Networking760018 -Node: Profiling762862 -Node: Internationalization770370 -Node: I18N and L10N771795 -Node: Explaining gettext772481 -Ref: Explaining gettext-Footnote-1777621 -Ref: Explaining gettext-Footnote-2777805 -Node: Programmer i18n777970 -Node: Translator i18n782195 -Node: String Extraction782989 -Ref: String Extraction-Footnote-1783950 -Node: Printf Ordering784036 -Ref: Printf Ordering-Footnote-1786818 -Node: I18N Portability786882 -Ref: I18N Portability-Footnote-1789331 -Node: I18N Example789394 -Ref: I18N Example-Footnote-1792116 -Node: Gawk I18N792188 -Node: Debugger792801 -Node: Debugging793772 -Node: Debugging Concepts794213 -Node: Debugging Terms796069 -Node: Awk Debugging798666 -Node: Sample Debugging Session799558 -Node: Debugger Invocation800078 -Node: Finding The Bug801411 -Node: List of Debugger Commands807893 -Node: Breakpoint Control809225 -Node: Debugger Execution Control812889 -Node: Viewing And Changing Data816249 -Node: Execution Stack819607 -Node: Debugger Info821120 -Node: Miscellaneous Debugger Commands825114 -Node: Readline Support830298 -Node: Limitations831190 -Node: Arbitrary Precision Arithmetic833438 -Ref: Arbitrary Precision Arithmetic-Footnote-1835087 -Node: General Arithmetic835235 -Node: Floating Point Issues836955 -Node: String Conversion Precision837836 -Ref: String Conversion Precision-Footnote-1839541 -Node: Unexpected Results839650 -Node: POSIX Floating Point Problems841803 -Ref: POSIX Floating Point Problems-Footnote-1845624 -Node: Integer Programming845662 -Node: Floating-point Programming847473 -Ref: Floating-point Programming-Footnote-1853801 -Ref: Floating-point Programming-Footnote-2854071 -Node: Floating-point Representation854335 -Node: Floating-point Context855500 -Ref: table-ieee-formats856339 -Node: Rounding Mode857723 -Ref: table-rounding-modes858202 -Ref: Rounding Mode-Footnote-1861217 -Node: Gawk and MPFR861396 -Node: Arbitrary Precision Floats862805 -Ref: Arbitrary Precision Floats-Footnote-1865248 -Node: Setting Precision865569 -Ref: table-predefined-precision-strings866253 -Node: Setting Rounding Mode868398 -Ref: table-gawk-rounding-modes868802 -Node: Floating-point Constants869989 -Node: Changing Precision871441 -Ref: Changing Precision-Footnote-1872833 -Node: Exact Arithmetic873007 -Node: Arbitrary Precision Integers876141 -Ref: Arbitrary Precision Integers-Footnote-1879156 -Node: Dynamic Extensions879303 -Node: Extension Intro880761 -Node: Plugin License882026 -Node: Extension Mechanism Outline882711 -Ref: figure-load-extension883135 -Ref: figure-load-new-function884620 -Ref: figure-call-new-function885622 -Node: Extension API Description887606 -Node: Extension API Functions Introduction889056 -Node: General Data Types893922 -Ref: General Data Types-Footnote-1899615 -Node: Requesting Values899914 -Ref: table-value-types-returned900651 -Node: Memory Allocation Functions901609 -Ref: Memory Allocation Functions-Footnote-1904356 -Node: Constructor Functions904452 -Node: Registration Functions906210 -Node: Extension Functions906895 -Node: Exit Callback Functions909197 -Node: Extension Version String910447 -Node: Input Parsers911097 -Node: Output Wrappers920900 -Node: Two-way processors925416 -Node: Printing Messages927620 -Ref: Printing Messages-Footnote-1928697 -Node: Updating `ERRNO'928849 -Node: Accessing Parameters929588 -Node: Symbol Table Access930818 -Node: Symbol table by name931332 -Node: Symbol table by cookie933308 -Ref: Symbol table by cookie-Footnote-1937441 -Node: Cached values937504 -Ref: Cached values-Footnote-1941009 -Node: Array Manipulation941100 -Ref: Array Manipulation-Footnote-1942198 -Node: Array Data Types942237 -Ref: Array Data Types-Footnote-1944940 -Node: Array Functions945032 -Node: Flattening Arrays948906 -Node: Creating Arrays955758 -Node: Extension API Variables960489 -Node: Extension Versioning961125 -Node: Extension API Informational Variables963026 -Node: Extension API Boilerplate964112 -Node: Finding Extensions967916 -Node: Extension Example968476 -Node: Internal File Description969206 -Node: Internal File Ops973297 -Ref: Internal File Ops-Footnote-1984843 -Node: Using Internal File Ops984983 -Ref: Using Internal File Ops-Footnote-1987330 -Node: Extension Samples987598 -Node: Extension Sample File Functions989122 -Node: Extension Sample Fnmatch996690 -Node: Extension Sample Fork998157 -Node: Extension Sample Inplace999370 -Node: Extension Sample Ord1001136 -Node: Extension Sample Readdir1001972 -Ref: table-readdir-file-types1002821 -Node: Extension Sample Revout1003620 -Node: Extension Sample Rev2way1004211 -Node: Extension Sample Read write array1004952 -Node: Extension Sample Readfile1006831 -Node: Extension Sample API Tests1007931 -Node: Extension Sample Time1008456 -Node: gawkextlib1009771 -Node: Language History1012558 -Node: V7/SVR3.11014152 -Node: SVR41016472 -Node: POSIX1017914 -Node: BTL1019300 -Node: POSIX/GNU1020034 -Node: Feature History1025633 -Node: Common Extensions1038745 -Node: Ranges and Locales1040057 -Ref: Ranges and Locales-Footnote-11044674 -Ref: Ranges and Locales-Footnote-21044701 -Ref: Ranges and Locales-Footnote-31044935 -Node: Contributors1045156 -Node: Installation1050594 -Node: Gawk Distribution1051488 -Node: Getting1051972 -Node: Extracting1052798 -Node: Distribution contents1054440 -Node: Unix Installation1060157 -Node: Quick Installation1060774 -Node: Additional Configuration Options1063216 -Node: Configuration Philosophy1064954 -Node: Non-Unix Installation1067305 -Node: PC Installation1067763 -Node: PC Binary Installation1069074 -Node: PC Compiling1070922 -Ref: PC Compiling-Footnote-11073921 -Node: PC Testing1074026 -Node: PC Using1075202 -Node: Cygwin1079360 -Node: MSYS1080169 -Node: VMS Installation1080683 -Node: VMS Compilation1081479 -Ref: VMS Compilation-Footnote-11082694 -Node: VMS Dynamic Extensions1082752 -Node: VMS Installation Details1084125 -Node: VMS Running1086371 -Node: VMS GNV1089205 -Node: VMS Old Gawk1089928 -Node: Bugs1090398 -Node: Other Versions1094402 -Node: Notes1100627 -Node: Compatibility Mode1101427 -Node: Additions1102209 -Node: Accessing The Source1103134 -Node: Adding Code1104570 -Node: New Ports1110748 -Node: Derived Files1115229 -Ref: Derived Files-Footnote-11120310 -Ref: Derived Files-Footnote-21120344 -Ref: Derived Files-Footnote-31120940 -Node: Future Extensions1121054 -Node: Implementation Limitations1121660 -Node: Extension Design1122908 -Node: Old Extension Problems1124062 -Ref: Old Extension Problems-Footnote-11125579 -Node: Extension New Mechanism Goals1125636 -Ref: Extension New Mechanism Goals-Footnote-11128997 -Node: Extension Other Design Decisions1129186 -Node: Extension Future Growth1131292 -Node: Old Extension Mechanism1132128 -Node: Basic Concepts1133868 -Node: Basic High Level1134549 -Ref: figure-general-flow1134821 -Ref: figure-process-flow1135420 -Ref: Basic High Level-Footnote-11138649 -Node: Basic Data Typing1138834 -Node: Glossary1142161 -Node: Copying1167313 -Node: GNU Free Documentation License1204869 -Node: Index1230005 +Node: Records184248 +Node: awk split records184991 +Node: gawk split records189849 +Ref: gawk split records-Footnote-1194370 +Node: Fields194407 +Ref: Fields-Footnote-1197371 +Node: Nonconstant Fields197457 +Ref: Nonconstant Fields-Footnote-1199687 +Node: Changing Fields199889 +Node: Field Separators205843 +Node: Default Field Splitting208545 +Node: Regexp Field Splitting209662 +Node: Single Character Fields213003 +Node: Command Line Field Separator214062 +Node: Full Line Fields217404 +Ref: Full Line Fields-Footnote-1217912 +Node: Field Splitting Summary217958 +Ref: Field Splitting Summary-Footnote-1221057 +Node: Constant Size221158 +Node: Splitting By Content225765 +Ref: Splitting By Content-Footnote-1229515 +Node: Multiple Line229555 +Ref: Multiple Line-Footnote-1235411 +Node: Getline235590 +Node: Plain Getline237806 +Node: Getline/Variable239901 +Node: Getline/File241048 +Node: Getline/Variable/File242424 +Ref: Getline/Variable/File-Footnote-1244023 +Node: Getline/Pipe244110 +Node: Getline/Variable/Pipe246809 +Node: Getline/Coprocess247916 +Node: Getline/Variable/Coprocess249168 +Node: Getline Notes249905 +Node: Getline Summary252709 +Ref: table-getline-variants253117 +Node: Read Timeout254029 +Ref: Read Timeout-Footnote-1257856 +Node: Command line directories257914 +Node: Input Summary258818 +Node: Printing261932 +Node: Print263604 +Node: Print Examples264945 +Node: Output Separators267724 +Node: OFMT269740 +Node: Printf271098 +Node: Basic Printf272004 +Node: Control Letters273543 +Node: Format Modifiers277397 +Node: Printf Examples283424 +Node: Redirection286131 +Node: Special Files293078 +Node: Special FD293594 +Ref: Special FD-Footnote-1297169 +Node: Special Network297243 +Node: Special Caveats298079 +Node: Close Files And Pipes298854 +Ref: Close Files And Pipes-Footnote-1305993 +Ref: Close Files And Pipes-Footnote-2306141 +Node: Output Summary306291 +Node: Expressions307263 +Node: Values308448 +Node: Constants309124 +Node: Scalar Constants309804 +Ref: Scalar Constants-Footnote-1310663 +Node: Nondecimal-numbers310913 +Node: Regexp Constants313913 +Node: Using Constant Regexps314388 +Node: Variables317458 +Node: Using Variables318113 +Node: Assignment Options319837 +Node: Conversion321704 +Ref: table-locale-affects327140 +Ref: Conversion-Footnote-1327764 +Node: All Operators327873 +Node: Arithmetic Ops328503 +Node: Concatenation331008 +Ref: Concatenation-Footnote-1333804 +Node: Assignment Ops333924 +Ref: table-assign-ops338907 +Node: Increment Ops340224 +Node: Truth Values and Conditions343662 +Node: Truth Values344745 +Node: Typing and Comparison345794 +Node: Variable Typing346587 +Ref: Variable Typing-Footnote-1350487 +Node: Comparison Operators350609 +Ref: table-relational-ops351019 +Node: POSIX String Comparison354569 +Ref: POSIX String Comparison-Footnote-1355653 +Node: Boolean Ops355791 +Ref: Boolean Ops-Footnote-1359861 +Node: Conditional Exp359952 +Node: Function Calls361679 +Node: Precedence365437 +Node: Locales369106 +Node: Expressions Summary370737 +Node: Patterns and Actions373234 +Node: Pattern Overview374350 +Node: Regexp Patterns376027 +Node: Expression Patterns376570 +Node: Ranges380351 +Node: BEGIN/END383457 +Node: Using BEGIN/END384219 +Ref: Using BEGIN/END-Footnote-1386955 +Node: I/O And BEGIN/END387061 +Node: BEGINFILE/ENDFILE389346 +Node: Empty392277 +Node: Using Shell Variables392594 +Node: Action Overview394877 +Node: Statements397204 +Node: If Statement399052 +Node: While Statement400550 +Node: Do Statement402594 +Node: For Statement403750 +Node: Switch Statement406902 +Node: Break Statement409005 +Node: Continue Statement411060 +Node: Next Statement412853 +Node: Nextfile Statement415243 +Node: Exit Statement417898 +Node: Built-in Variables420302 +Node: User-modified421429 +Ref: User-modified-Footnote-1429114 +Node: Auto-set429176 +Ref: Auto-set-Footnote-1442059 +Ref: Auto-set-Footnote-2442264 +Node: ARGC and ARGV442320 +Node: Pattern Action Summary446159 +Node: Arrays448382 +Node: Array Basics449880 +Node: Array Intro450706 +Ref: figure-array-elements452679 +Node: Reference to Elements455086 +Node: Assigning Elements457359 +Node: Array Example457850 +Node: Scanning an Array459582 +Node: Controlling Scanning462597 +Ref: Controlling Scanning-Footnote-1467770 +Node: Delete468086 +Ref: Delete-Footnote-1470851 +Node: Numeric Array Subscripts470908 +Node: Uninitialized Subscripts473091 +Node: Multidimensional474716 +Node: Multiscanning477809 +Node: Arrays of Arrays479398 +Node: Functions484038 +Node: Built-in484857 +Node: Calling Built-in485935 +Node: Numeric Functions487923 +Ref: Numeric Functions-Footnote-1491757 +Ref: Numeric Functions-Footnote-2492114 +Ref: Numeric Functions-Footnote-3492162 +Node: String Functions492431 +Ref: String Functions-Footnote-1515442 +Ref: String Functions-Footnote-2515571 +Ref: String Functions-Footnote-3515819 +Node: Gory Details515906 +Ref: table-sub-escapes517575 +Ref: table-sub-posix-92518929 +Ref: table-sub-proposed520280 +Ref: table-posix-sub521634 +Ref: table-gensub-escapes523179 +Ref: Gory Details-Footnote-1524355 +Ref: Gory Details-Footnote-2524406 +Node: I/O Functions524557 +Ref: I/O Functions-Footnote-1531680 +Node: Time Functions531827 +Ref: Time Functions-Footnote-1542291 +Ref: Time Functions-Footnote-2542359 +Ref: Time Functions-Footnote-3542517 +Ref: Time Functions-Footnote-4542628 +Ref: Time Functions-Footnote-5542740 +Ref: Time Functions-Footnote-6542967 +Node: Bitwise Functions543233 +Ref: table-bitwise-ops543795 +Ref: Bitwise Functions-Footnote-1548040 +Node: Type Functions548224 +Node: I18N Functions549366 +Node: User-defined551011 +Node: Definition Syntax551815 +Ref: Definition Syntax-Footnote-1556740 +Node: Function Example556809 +Ref: Function Example-Footnote-1559453 +Node: Function Caveats559475 +Node: Calling A Function559993 +Node: Variable Scope560948 +Node: Pass By Value/Reference563936 +Node: Return Statement567444 +Node: Dynamic Typing570428 +Node: Indirect Calls571357 +Node: Library Functions581044 +Ref: Library Functions-Footnote-1584557 +Ref: Library Functions-Footnote-2584700 +Node: Library Names584871 +Ref: Library Names-Footnote-1588344 +Ref: Library Names-Footnote-2588564 +Node: General Functions588650 +Node: Strtonum Function589678 +Node: Assert Function592608 +Node: Round Function595934 +Node: Cliff Random Function597475 +Node: Ordinal Functions598491 +Ref: Ordinal Functions-Footnote-1601568 +Ref: Ordinal Functions-Footnote-2601820 +Node: Join Function602031 +Ref: Join Function-Footnote-1603802 +Node: Getlocaltime Function604002 +Node: Readfile Function607738 +Node: Data File Management609577 +Node: Filetrans Function610209 +Node: Rewind Function614264 +Node: File Checking615651 +Ref: File Checking-Footnote-1616783 +Node: Empty Files616984 +Node: Ignoring Assigns619207 +Node: Getopt Function620738 +Ref: Getopt Function-Footnote-1632034 +Node: Passwd Functions632237 +Ref: Passwd Functions-Footnote-1641216 +Node: Group Functions641304 +Ref: Group Functions-Footnote-1649246 +Node: Walking Arrays649459 +Node: Sample Programs651595 +Node: Running Examples652269 +Node: Clones652997 +Node: Cut Program654221 +Node: Egrep Program664082 +Ref: Egrep Program-Footnote-1672011 +Node: Id Program672121 +Node: Split Program675785 +Ref: Split Program-Footnote-1679316 +Node: Tee Program679444 +Node: Uniq Program682251 +Node: Wc Program689681 +Ref: Wc Program-Footnote-1693949 +Ref: Wc Program-Footnote-2694149 +Node: Miscellaneous Programs694241 +Node: Dupword Program695429 +Node: Alarm Program697460 +Node: Translate Program702274 +Ref: Translate Program-Footnote-1706665 +Ref: Translate Program-Footnote-2706935 +Node: Labels Program707069 +Ref: Labels Program-Footnote-1710440 +Node: Word Sorting710524 +Node: History Sorting714567 +Node: Extract Program716403 +Ref: Extract Program-Footnote-1723978 +Node: Simple Sed724107 +Node: Igawk Program727169 +Ref: Igawk Program-Footnote-1742345 +Ref: Igawk Program-Footnote-2742546 +Node: Anagram Program742684 +Node: Signature Program745752 +Node: Advanced Features746999 +Node: Nondecimal Data748885 +Node: Array Sorting750462 +Node: Controlling Array Traversal751159 +Node: Array Sorting Functions759439 +Ref: Array Sorting Functions-Footnote-1763346 +Node: Two-way I/O763540 +Ref: Two-way I/O-Footnote-1769056 +Node: TCP/IP Networking769138 +Node: Profiling771982 +Node: Internationalization779490 +Node: I18N and L10N780915 +Node: Explaining gettext781601 +Ref: Explaining gettext-Footnote-1786741 +Ref: Explaining gettext-Footnote-2786925 +Node: Programmer i18n787090 +Node: Translator i18n791315 +Node: String Extraction792109 +Ref: String Extraction-Footnote-1793070 +Node: Printf Ordering793156 +Ref: Printf Ordering-Footnote-1795938 +Node: I18N Portability796002 +Ref: I18N Portability-Footnote-1798451 +Node: I18N Example798514 +Ref: I18N Example-Footnote-1801236 +Node: Gawk I18N801308 +Node: Debugger801921 +Node: Debugging802892 +Node: Debugging Concepts803333 +Node: Debugging Terms805189 +Node: Awk Debugging807786 +Node: Sample Debugging Session808678 +Node: Debugger Invocation809198 +Node: Finding The Bug810531 +Node: List of Debugger Commands817013 +Node: Breakpoint Control818345 +Node: Debugger Execution Control822009 +Node: Viewing And Changing Data825369 +Node: Execution Stack828727 +Node: Debugger Info830240 +Node: Miscellaneous Debugger Commands834234 +Node: Readline Support839418 +Node: Limitations840310 +Node: Arbitrary Precision Arithmetic842558 +Ref: Arbitrary Precision Arithmetic-Footnote-1844207 +Node: General Arithmetic844355 +Node: Floating Point Issues846075 +Node: String Conversion Precision846956 +Ref: String Conversion Precision-Footnote-1848661 +Node: Unexpected Results848770 +Node: POSIX Floating Point Problems850923 +Ref: POSIX Floating Point Problems-Footnote-1854744 +Node: Integer Programming854782 +Node: Floating-point Programming856593 +Ref: Floating-point Programming-Footnote-1862921 +Ref: Floating-point Programming-Footnote-2863191 +Node: Floating-point Representation863455 +Node: Floating-point Context864620 +Ref: table-ieee-formats865459 +Node: Rounding Mode866843 +Ref: table-rounding-modes867322 +Ref: Rounding Mode-Footnote-1870337 +Node: Gawk and MPFR870516 +Node: Arbitrary Precision Floats871925 +Ref: Arbitrary Precision Floats-Footnote-1874368 +Node: Setting Precision874689 +Ref: table-predefined-precision-strings875373 +Node: Setting Rounding Mode877518 +Ref: table-gawk-rounding-modes877922 +Node: Floating-point Constants879109 +Node: Changing Precision880561 +Ref: Changing Precision-Footnote-1881953 +Node: Exact Arithmetic882127 +Node: Arbitrary Precision Integers885261 +Ref: Arbitrary Precision Integers-Footnote-1888276 +Node: Dynamic Extensions888423 +Node: Extension Intro889881 +Node: Plugin License891146 +Node: Extension Mechanism Outline891831 +Ref: figure-load-extension892255 +Ref: figure-load-new-function893740 +Ref: figure-call-new-function894742 +Node: Extension API Description896726 +Node: Extension API Functions Introduction898176 +Node: General Data Types903042 +Ref: General Data Types-Footnote-1908735 +Node: Requesting Values909034 +Ref: table-value-types-returned909771 +Node: Memory Allocation Functions910729 +Ref: Memory Allocation Functions-Footnote-1913476 +Node: Constructor Functions913572 +Node: Registration Functions915330 +Node: Extension Functions916015 +Node: Exit Callback Functions918317 +Node: Extension Version String919567 +Node: Input Parsers920217 +Node: Output Wrappers930020 +Node: Two-way processors934536 +Node: Printing Messages936740 +Ref: Printing Messages-Footnote-1937817 +Node: Updating `ERRNO'937969 +Node: Accessing Parameters938708 +Node: Symbol Table Access939938 +Node: Symbol table by name940452 +Node: Symbol table by cookie942428 +Ref: Symbol table by cookie-Footnote-1946561 +Node: Cached values946624 +Ref: Cached values-Footnote-1950129 +Node: Array Manipulation950220 +Ref: Array Manipulation-Footnote-1951318 +Node: Array Data Types951357 +Ref: Array Data Types-Footnote-1954060 +Node: Array Functions954152 +Node: Flattening Arrays958026 +Node: Creating Arrays964878 +Node: Extension API Variables969609 +Node: Extension Versioning970245 +Node: Extension API Informational Variables972146 +Node: Extension API Boilerplate973232 +Node: Finding Extensions977036 +Node: Extension Example977596 +Node: Internal File Description978326 +Node: Internal File Ops982417 +Ref: Internal File Ops-Footnote-1993963 +Node: Using Internal File Ops994103 +Ref: Using Internal File Ops-Footnote-1996450 +Node: Extension Samples996718 +Node: Extension Sample File Functions998242 +Node: Extension Sample Fnmatch1005810 +Node: Extension Sample Fork1007277 +Node: Extension Sample Inplace1008490 +Node: Extension Sample Ord1010256 +Node: Extension Sample Readdir1011092 +Ref: table-readdir-file-types1011941 +Node: Extension Sample Revout1012740 +Node: Extension Sample Rev2way1013331 +Node: Extension Sample Read write array1014072 +Node: Extension Sample Readfile1015951 +Node: Extension Sample API Tests1017051 +Node: Extension Sample Time1017576 +Node: gawkextlib1018891 +Node: Language History1021678 +Node: V7/SVR3.11023272 +Node: SVR41025592 +Node: POSIX1027034 +Node: BTL1028420 +Node: POSIX/GNU1029154 +Node: Feature History1034753 +Node: Common Extensions1047865 +Node: Ranges and Locales1049177 +Ref: Ranges and Locales-Footnote-11053794 +Ref: Ranges and Locales-Footnote-21053821 +Ref: Ranges and Locales-Footnote-31054055 +Node: Contributors1054276 +Node: Installation1059714 +Node: Gawk Distribution1060608 +Node: Getting1061092 +Node: Extracting1061918 +Node: Distribution contents1063560 +Node: Unix Installation1069277 +Node: Quick Installation1069894 +Node: Additional Configuration Options1072336 +Node: Configuration Philosophy1074074 +Node: Non-Unix Installation1076425 +Node: PC Installation1076883 +Node: PC Binary Installation1078194 +Node: PC Compiling1080042 +Ref: PC Compiling-Footnote-11083041 +Node: PC Testing1083146 +Node: PC Using1084322 +Node: Cygwin1088480 +Node: MSYS1089289 +Node: VMS Installation1089803 +Node: VMS Compilation1090599 +Ref: VMS Compilation-Footnote-11091814 +Node: VMS Dynamic Extensions1091872 +Node: VMS Installation Details1093245 +Node: VMS Running1095491 +Node: VMS GNV1098325 +Node: VMS Old Gawk1099048 +Node: Bugs1099518 +Node: Other Versions1103522 +Node: Notes1109747 +Node: Compatibility Mode1110547 +Node: Additions1111329 +Node: Accessing The Source1112254 +Node: Adding Code1113690 +Node: New Ports1119868 +Node: Derived Files1124349 +Ref: Derived Files-Footnote-11129430 +Ref: Derived Files-Footnote-21129464 +Ref: Derived Files-Footnote-31130060 +Node: Future Extensions1130174 +Node: Implementation Limitations1130780 +Node: Extension Design1132028 +Node: Old Extension Problems1133182 +Ref: Old Extension Problems-Footnote-11134699 +Node: Extension New Mechanism Goals1134756 +Ref: Extension New Mechanism Goals-Footnote-11138117 +Node: Extension Other Design Decisions1138306 +Node: Extension Future Growth1140412 +Node: Old Extension Mechanism1141248 +Node: Basic Concepts1142988 +Node: Basic High Level1143669 +Ref: figure-general-flow1143941 +Ref: figure-process-flow1144540 +Ref: Basic High Level-Footnote-11147769 +Node: Basic Data Typing1147954 +Node: Glossary1151281 +Node: Copying1176433 +Node: GNU Free Documentation License1213989 +Node: Index1239125 End Tag Table |