diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-02-13 21:35:21 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-02-13 21:35:21 +0200 |
commit | 2861919e941c17a560a0d608da3de4ee1e08ac47 (patch) | |
tree | e3d3373f8fbedb3bd2d6415a245482efb1d6483c | |
parent | 32086b1f52a9978db1e8168b56a312e76afcf5ab (diff) | |
download | egawk-2861919e941c17a560a0d608da3de4ee1e08ac47.tar.gz egawk-2861919e941c17a560a0d608da3de4ee1e08ac47.tar.bz2 egawk-2861919e941c17a560a0d608da3de4ee1e08ac47.zip |
More doc fixes.
-rw-r--r-- | awklib/eg/prog/cut.awk | 2 | ||||
-rw-r--r-- | doc/gawk.info | 823 | ||||
-rw-r--r-- | doc/gawk.texi | 78 |
3 files changed, 457 insertions, 446 deletions
diff --git a/awklib/eg/prog/cut.awk b/awklib/eg/prog/cut.awk index 482ccd6e..91a13a4e 100644 --- a/awklib/eg/prog/cut.awk +++ b/awklib/eg/prog/cut.awk @@ -96,7 +96,7 @@ function set_charlist( field, i, j, f, g, t, if (index(f[i], "-") != 0) { # range m = split(f[i], g, "-") if (m != 2 || g[1] >= g[2]) { - printf("bad character list: %s\n", + printf("bad bracket expression: %s\n", f[i]) > "/dev/stderr" exit 1 } diff --git a/doc/gawk.info b/doc/gawk.info index 40abc71b..0744ca0f 100644 --- a/doc/gawk.info +++ b/doc/gawk.info @@ -3057,16 +3057,17 @@ sequences and that are not listed in the table stand for themselves: may not be able to match the NUL character. `[...]' - This is called a "character list".(1) It matches any _one_ of the - characters that are enclosed in the square brackets. For example, - `[MVX]' matches any one of the characters `M', `V', or `X' in a - string. A full discussion of what can be inside the square - brackets of a character list is given in *note Character Lists::. + This is called a "bracket expression".(1) It matches any _one_ of + the characters that are enclosed in the square brackets. For + example, `[MVX]' matches any one of the characters `M', `V', or + `X' in a string. A full discussion of what can be inside the + square brackets of a bracket expression is given in *note + Character Lists::. `[^ ...]' - This is a "complemented character list". The first character after - the `[' _must_ be a `^'. It matches any characters _except_ those - in the square brackets. For example, `[^awk]' matches any + This is a "complemented bracket expression". The first character + after the `[' _must_ be a `^'. It matches any characters _except_ + those in the square brackets. For example, `[^awk]' matches any character that is not an `a', `w', or `k'. `|' @@ -3167,9 +3168,9 @@ expressions are not available in regular expressions. ---------- Footnotes ---------- - (1) In other literature, you may see a character list referred to as -either a "character set", a "character class", or a "bracket -expression". + (1) In other literature, you may see a bracket expression referred +to as either a "character set", a "character class", or a "character +list". (2) Use two backslashes if you're using a string constant with a regexp operator or function. @@ -3180,7 +3181,7 @@ File: gawk.info, Node: Character Lists, Next: GNU Regexp Operators, Prev: Reg 3.4 Using Character Lists ========================= -Within a character list, a "range expression" consists of two +Within a bracket expression, a "range expression" consists of two characters separated by a hyphen. It matches any single character that sorts between the two characters, using the locale's collating sequence and character set. For example, `[0-9]' is equivalent to @@ -3190,15 +3191,15 @@ and character set. For example, `[0-9]' is equivalent to usually does not work like you might expect, due to locale-related issues. This is discussed more fully, in *note Locales::. - To include one of the characters `\', `]', `-', or `^' in a -character list, put a `\' in front of it. For example: + To include one of the characters `\', `]', `-', or `^' in a bracket +expression, put a `\' in front of it. For example: [d\]] matches either `d' or `]'. - This treatment of `\' in character lists is compatible with other -`awk' implementations and is also mandated by POSIX. The regular + This treatment of `\' in bracket expressions is compatible with +other `awk' implementations and is also mandated by POSIX. The regular expressions in `awk' are a superset of the POSIX specification for Extended Regular Expressions (EREs). POSIX EREs are based on the regular expressions accepted by the traditional `egrep' utility. @@ -3211,7 +3212,7 @@ set. For example, the notion of what is an alphabetic character differs between the United States and France. A character class is only valid in a regexp _inside_ the brackets of -a character list. Character classes consist of `[:', a keyword +a bracket expression. Character classes consist of `[:', a keyword denoting the class, and `:]'. *note table-char-classes:: lists the character classes defined by the POSIX standard. @@ -3244,7 +3245,7 @@ not even match the ASCII alphanumeric characters. With the POSIX character classes, you can write `/[[:alnum:]]/' to match the alphabetic and numeric characters in your character set. - Two additional special sequences can appear in character lists. + Two additional special sequences can appear in bracket expressions. These apply to non-ASCII character sets, which can have single symbols (called "collating elements") that are represented with more than one character. They can also have several characters that are equivalent for @@ -3409,7 +3410,7 @@ zero: In general, you cannot use `IGNORECASE' to make certain rules case-insensitive and other rules case-sensitive, because there is no straightforward way to set `IGNORECASE' just for the pattern of a -particular rule.(1) To do this, use either character lists or +particular rule.(1) To do this, use either bracket expressions or `tolower()'. However, one thing you can do with `IGNORECASE' only is dynamically turn case-sensitivity on or off for all the rules at once. @@ -3532,7 +3533,7 @@ Advanced Notes: Using `\n' in Character Lists of Dynamic Regexps ---------------------------------------------------------------- Some commercial versions of `awk' do not allow the newline character to -be used inside a character list for a dynamic regexp: +be used inside a bracket expression for a dynamic regexp: $ awk '$0 ~ "[ \t\n]"' error--> awk: newline in character class [ @@ -3620,7 +3621,7 @@ such as `[[:punct:]]'.) case of `RS = "\n"', the locale is largely irrelevant. For other single-character record separators, using `LC_ALL=C' will give you much better performance when reading records. Otherwise, `gawk' has to make -several function calls, _per input character_ to find the record +several function calls, _per input character_, to find the record terminator. Finally, the locale affects the value of the decimal point character @@ -6336,7 +6337,8 @@ close succeeds, or -1 if it fails. The POSIX standard is very vague; it says that `close()' returns zero on success and non-zero otherwise. In general, different implementations vary in what they report when closing pipes; thus the -return value cannot be used portably. (d.c.) +return value cannot be used portably. (d.c.) In POSIX mode (*note +Options::), `gawk' just returns zero when closing a pipe. ---------- Footnotes ---------- @@ -15929,7 +15931,7 @@ splitting: The `set_charlist()' function is more complicated than `set_fieldlist()'. The idea here is to use `gawk''s `FIELDWIDTHS' variable (*note Constant Size::), which describes constant-width input. -When using a character list, that is exactly what we have. +When using a bracket expression, that is exactly what we have. Setting up `FIELDWIDTHS' is more complicated than simply listing the fields that need to be printed. We have to keep track of the fields to @@ -15952,7 +15954,7 @@ filler fields: if (index(f[i], "-") != 0) { # range m = split(f[i], g, "-") if (m != 2 || g[1] >= g[2]) { - printf("bad character list: %s\n", + printf("bad bracket expression: %s\n", f[i]) > "/dev/stderr" exit 1 } @@ -24304,12 +24306,12 @@ Index * ' (single quote): One-shot. (line 15) * ' (single quote), vs. apostrophe: Comments. (line 27) * ' (single quote), with double quotes: Quoting. (line 53) -* () (parentheses): Regexp Operators. (line 78) +* () (parentheses): Regexp Operators. (line 79) * () (parentheses), pgawk program: Profiling. (line 141) * * (asterisk), * operator, as multiplication operator: Precedence. (line 55) * * (asterisk), * operator, as regexp operator: Regexp Operators. - (line 86) + (line 87) * * (asterisk), * operator, null strings, matching: Gory Details. (line 96) * * (asterisk), ** operator <1>: Precedence. (line 49) @@ -24318,7 +24320,7 @@ Index * * (asterisk), **= operator: Assignment Ops. (line 129) * * (asterisk), *= operator <1>: Precedence. (line 95) * * (asterisk), *= operator: Assignment Ops. (line 129) -* + (plus sign): Regexp Operators. (line 101) +* + (plus sign): Regexp Operators. (line 102) * + (plus sign), + operator: Precedence. (line 52) * + (plus sign), ++ (decrement/increment operators): Increment Ops. (line 11) @@ -24333,7 +24335,7 @@ Index * - (hyphen), -= operator <1>: Precedence. (line 95) * - (hyphen), -= operator: Assignment Ops. (line 129) * - (hyphen), filenames beginning with: Options. (line 59) -* - (hyphen), in character lists: Character Lists. (line 16) +* - (hyphen), in bracket expressions: Character Lists. (line 16) * --assign option: Options. (line 32) * --c option: Options. (line 78) * --characters-as-bytes option: Options. (line 68) @@ -24455,7 +24457,7 @@ Index * > (right angle bracket), >> operator (I/O): Redirection. (line 50) * ? (question mark) regexp operator <1>: GNU Regexp Operators. (line 59) -* ? (question mark) regexp operator: Regexp Operators. (line 110) +* ? (question mark) regexp operator: Regexp Operators. (line 111) * ? (question mark), ?: operator: Precedence. (line 92) * [] (square brackets): Regexp Operators. (line 55) * \ (backslash) <1>: Regexp Operators. (line 18) @@ -24503,7 +24505,7 @@ Index (line 44) * \ (backslash), gsub()/gensub()/sub() functions and: Gory Details. (line 6) -* \ (backslash), in character lists: Character Lists. (line 16) +* \ (backslash), in bracket expressions: Character Lists. (line 16) * \ (backslash), in escape sequences: Escape Sequences. (line 6) * \ (backslash), in escape sequences, POSIX and: Escape Sequences. (line 113) @@ -24514,7 +24516,7 @@ Index * ^ (caret), ^ operator: Precedence. (line 49) * ^ (caret), ^= operator <1>: Precedence. (line 95) * ^ (caret), ^= operator: Assignment Ops. (line 129) -* ^ (caret), in character lists: Character Lists. (line 16) +* ^ (caret), in bracket expressions: Character Lists. (line 16) * ^, in FS: Regexp Field Splitting. (line 59) * _ (underscore), _ C macro: Explaining gettext. (line 70) @@ -24641,7 +24643,7 @@ Index * asterisk (*), * operator, as multiplication operator: Precedence. (line 55) * asterisk (*), * operator, as regexp operator: Regexp Operators. - (line 86) + (line 87) * asterisk (*), * operator, null strings, matching: Gory Details. (line 96) * asterisk (*), ** operator <1>: Precedence. (line 49) @@ -24757,7 +24759,7 @@ Index (line 44) * backslash (\), gsub()/gensub()/sub() functions and: Gory Details. (line 6) -* backslash (\), in character lists: Character Lists. (line 16) +* backslash (\), in bracket expressions: Character Lists. (line 16) * backslash (\), in escape sequences: Escape Sequences. (line 6) * backslash (\), in escape sequences, POSIX and: Escape Sequences. (line 113) @@ -24814,7 +24816,15 @@ Index * braces ({}), actions and: Action Overview. (line 19) * braces ({}), pgawk program: Profiling. (line 137) * braces ({}), statements, grouping: Statements. (line 10) -* bracket expressions, See character lists: Regexp Operators. (line 55) +* bracket expressions <1>: Character Lists. (line 6) +* bracket expressions: Regexp Operators. (line 55) +* bracket expressions, character classes: Character Lists. (line 29) +* bracket expressions, collating elements: Character Lists. (line 70) +* bracket expressions, collating symbols: Character Lists. (line 77) +* bracket expressions, complemented: Regexp Operators. (line 63) +* bracket expressions, equivalence classes: Character Lists. (line 83) +* bracket expressions, non-ASCII: Character Lists. (line 70) +* bracket expressions, range expressions: Character Lists. (line 6) * break debugger command: Breakpoint Control. (line 11) * break statement: Break Statement. (line 6) * Brennan, Michael <1>: Other Versions. (line 6) @@ -24855,7 +24865,7 @@ Index * caret (^), ^ operator: Precedence. (line 49) * caret (^), ^= operator <1>: Precedence. (line 95) * caret (^), ^= operator: Assignment Ops. (line 129) -* caret (^), in character lists: Character Lists. (line 16) +* caret (^), in bracket expressions: Character Lists. (line 16) * case keyword: Switch Statement. (line 6) * case sensitivity, array indices and: Array Intro. (line 92) * case sensitivity, converting case: String Functions. (line 494) @@ -24865,19 +24875,12 @@ Index * case sensitivity, regexps and: Case-sensitivity. (line 6) * case sensitivity, string comparisons and: User-modified. (line 82) * CGI, awk scripts for: Options. (line 112) -* character lists <1>: Character Lists. (line 6) -* character lists: Regexp Operators. (line 55) -* character lists, character classes: Character Lists. (line 29) -* character lists, collating elements: Character Lists. (line 70) -* character lists, collating symbols: Character Lists. (line 77) -* character lists, complemented: Regexp Operators. (line 62) -* character lists, equivalence classes: Character Lists. (line 83) -* character lists, non-ASCII: Character Lists. (line 70) -* character lists, range expressions: Character Lists. (line 6) +* character lists, See bracket expressions: Regexp Operators. (line 55) * character sets (machine character encodings) <1>: Glossary. (line 137) * character sets (machine character encodings): Ordinal Functions. (line 45) -* character sets, See Also character lists: Regexp Operators. (line 55) +* character sets, See Also bracket expressions: Regexp Operators. + (line 55) * characters, counting: Wc Program. (line 6) * characters, transliterating: Translate Program. (line 6) * characters, values of as numbers: Ordinal Functions. (line 6) @@ -25668,7 +25671,7 @@ Index (line 13) * gawk, interpreter, adding code to: Using Internal File Ops. (line 6) -* gawk, interval expressions and: Regexp Operators. (line 138) +* gawk, interval expressions and: Regexp Operators. (line 139) * gawk, line continuation in: Conditional Exp. (line 34) * gawk, LINT variable in: User-modified. (line 98) * gawk, list of contributors to: Contributors. (line 6) @@ -25687,7 +25690,7 @@ Index (line 26) * gawk, regular expressions, operators: GNU Regexp Operators. (line 6) -* gawk, regular expressions, precedence: Regexp Operators. (line 156) +* gawk, regular expressions, precedence: Regexp Operators. (line 157) * gawk, RT variable in <1>: Auto-set. (line 195) * gawk, RT variable in <2>: Getline/Variable/File. (line 10) @@ -25802,7 +25805,7 @@ Index * hyphen (-), -= operator <1>: Precedence. (line 95) * hyphen (-), -= operator: Assignment Ops. (line 129) * hyphen (-), filenames beginning with: Options. (line 59) -* hyphen (-), in character lists: Character Lists. (line 16) +* hyphen (-), in bracket expressions: Character Lists. (line 16) * i debugger command (alias for info): Dgawk Info. (line 12) * id utility: Id Program. (line 6) * id.awk program: Id Program. (line 30) @@ -25916,7 +25919,7 @@ Index * internationalizing a program: Explaining gettext. (line 6) * interpreted programs <1>: Glossary. (line 356) * interpreted programs: Basic High Level. (line 14) -* interval expressions: Regexp Operators. (line 115) +* interval expressions: Regexp Operators. (line 116) * INVALID_HANDLE internal constant: Internals. (line 161) * inventory-shipped file: Sample Data Files. (line 32) * IOBUF internal structure: Internals. (line 161) @@ -26256,7 +26259,7 @@ Index * P1003.1 POSIX standard: Glossary. (line 438) * P1003.2 POSIX standard: Glossary. (line 438) * parameters, number of: Internals. (line 49) -* parentheses (): Regexp Operators. (line 78) +* parentheses (): Regexp Operators. (line 79) * parentheses (), pgawk program: Profiling. (line 141) * password file: Passwd Functions. (line 16) * patsplit() function: String Functions. (line 264) @@ -26290,7 +26293,7 @@ Index * pipes, output: Redirection. (line 57) * Pitts, Dave <1>: Bugs. (line 73) * Pitts, Dave: Acknowledgments. (line 60) -* plus sign (+): Regexp Operators. (line 101) +* plus sign (+): Regexp Operators. (line 102) * plus sign (+), + operator: Precedence. (line 52) * plus sign (+), ++ (decrement/increment operators): Increment Ops. (line 11) @@ -26348,11 +26351,11 @@ Index * POSIX awk, backslashes in string constants: Escape Sequences. (line 113) * POSIX awk, BEGIN/END patterns: I/O And BEGIN/END. (line 16) +* POSIX awk, bracket expressions and: Character Lists. (line 23) +* POSIX awk, bracket expressions and, character classes: Character Lists. + (line 29) * POSIX awk, break statement and: Break Statement. (line 51) * POSIX awk, changes in awk versions: POSIX. (line 6) -* POSIX awk, character lists and: Character Lists. (line 23) -* POSIX awk, character lists and, character classes: Character Lists. - (line 29) * POSIX awk, continue statement and: Continue Statement. (line 43) * POSIX awk, CONVFMT variable and: User-modified. (line 28) * POSIX awk, date utility and: Time Functions. (line 261) @@ -26363,14 +26366,14 @@ Index * POSIX awk, function keyword in: Definition Syntax. (line 78) * POSIX awk, functions and, length(): String Functions. (line 146) * POSIX awk, GNU long options and: Options. (line 15) -* POSIX awk, interval expressions in: Regexp Operators. (line 134) +* POSIX awk, interval expressions in: Regexp Operators. (line 135) * POSIX awk, next/nextfile statements and: Next Statement. (line 45) * POSIX awk, numeric strings and: Variable Typing. (line 6) * POSIX awk, OFMT variable and <1>: Conversion. (line 54) * POSIX awk, OFMT variable and: OFMT. (line 27) * POSIX awk, period (.), using: Regexp Operators. (line 50) * POSIX awk, printf format strings and: Format Modifiers. (line 159) -* POSIX awk, regular expressions and: Regexp Operators. (line 156) +* POSIX awk, regular expressions and: Regexp Operators. (line 157) * POSIX awk, timestamps and: Time Functions. (line 6) * POSIX awk, | I/O operator and: Getline/Pipe. (line 52) * POSIX mode: Options. (line 197) @@ -26380,7 +26383,7 @@ Index * POSIXLY_CORRECT environment variable: Options. (line 286) * precedence <1>: Precedence. (line 6) * precedence: Increment Ops. (line 61) -* precedence, regexp operators: Regexp Operators. (line 151) +* precedence, regexp operators: Regexp Operators. (line 152) * print debugger command: Viewing And Changing Data. (line 36) * print statement: Printing. (line 16) @@ -26457,7 +26460,7 @@ Index * QSE Awk: Other Versions. (line 108) * question mark (?) regexp operator <1>: GNU Regexp Operators. (line 59) -* question mark (?) regexp operator: Regexp Operators. (line 110) +* question mark (?) regexp operator: Regexp Operators. (line 111) * question mark (?), ?: operator: Precedence. (line 92) * QuikTrim Awk: Other Versions. (line 112) * quit debugger command: Miscellaneous Dgawk Commands. @@ -26545,7 +26548,7 @@ Index * regular expressions, operators, gawk: GNU Regexp Operators. (line 6) * regular expressions, operators, precedence of: Regexp Operators. - (line 151) + (line 152) * regular expressions, searching for: Egrep Program. (line 6) * relational operators, See comparison operators: Typing and Comparison. (line 9) @@ -26956,7 +26959,7 @@ Index * variables, uninitialized, as array subscripts: Uninitialized Subscripts. (line 6) * variables, user-defined: Variables. (line 6) -* vertical bar (|): Regexp Operators. (line 68) +* vertical bar (|): Regexp Operators. (line 69) * vertical bar (|), | operator (I/O) <1>: Precedence. (line 65) * vertical bar (|), | operator (I/O): Getline/Pipe. (line 6) * vertical bar (|), |& operator (I/O) <1>: Two-way I/O. (line 44) @@ -27014,7 +27017,7 @@ Index * {} (braces), actions and: Action Overview. (line 19) * {} (braces), pgawk program: Profiling. (line 137) * {} (braces), statements, grouping: Statements. (line 10) -* | (vertical bar): Regexp Operators. (line 68) +* | (vertical bar): Regexp Operators. (line 69) * | (vertical bar), | operator (I/O) <1>: Precedence. (line 65) * | (vertical bar), | operator (I/O) <2>: Redirection. (line 57) * | (vertical bar), | operator (I/O): Getline/Pipe. (line 6) @@ -27094,354 +27097,354 @@ Node: Regexp125916 Node: Regexp Usage127368 Node: Escape Sequences129394 Node: Regexp Operators135137 -Ref: Regexp Operators-Footnote-1142309 -Ref: Regexp Operators-Footnote-2142456 -Node: Character Lists142554 -Ref: table-char-classes144329 -Node: GNU Regexp Operators146969 -Node: Case-sensitivity150688 -Ref: Case-sensitivity-Footnote-1153643 -Ref: Case-sensitivity-Footnote-2153878 -Node: Leftmost Longest153986 -Node: Computed Regexps155187 -Node: Locales158604 -Node: Reading Files162145 -Node: Records164086 -Ref: Records-Footnote-1172765 -Node: Fields172802 -Ref: Fields-Footnote-1175834 -Node: Nonconstant Fields175920 -Node: Changing Fields178122 -Node: Field Separators183412 -Node: Default Field Splitting186041 -Node: Regexp Field Splitting187158 -Node: Single Character Fields190517 -Node: Command Line Field Separator191576 -Node: Field Splitting Summary195015 -Ref: Field Splitting Summary-Footnote-1198201 -Node: Constant Size198302 -Node: Splitting By Content202864 -Ref: Splitting By Content-Footnote-1206590 -Node: Multiple Line206630 -Ref: Multiple Line-Footnote-1212477 -Node: Getline212656 -Node: Plain Getline214884 -Node: Getline/Variable216973 -Node: Getline/File218114 -Node: Getline/Variable/File219436 -Ref: Getline/Variable/File-Footnote-1221035 -Node: Getline/Pipe221122 -Node: Getline/Variable/Pipe223670 -Node: Getline/Coprocess224777 -Node: Getline/Variable/Coprocess226020 -Node: Getline Notes226734 -Node: Getline Summary228676 -Ref: table-getline-variants228960 -Node: Command line directories229865 -Node: Printing230490 -Node: Print232121 -Node: Print Examples233458 -Node: Output Separators236242 -Node: OFMT238001 -Node: Printf239359 -Node: Basic Printf240265 -Node: Control Letters241802 -Node: Format Modifiers245614 -Node: Printf Examples251625 -Node: Redirection254340 -Node: Special Files261318 -Node: Special FD261851 -Ref: Special FD-Footnote-1265462 -Node: Special Network265536 -Node: Special Caveats266391 -Node: Close Files And Pipes267185 -Ref: Close Files And Pipes-Footnote-1274129 -Ref: Close Files And Pipes-Footnote-2274277 -Node: Expressions274427 -Node: Values275496 -Node: Constants276172 -Node: Scalar Constants276852 -Ref: Scalar Constants-Footnote-1277711 -Node: Nondecimal-numbers277893 -Node: Regexp Constants280952 -Node: Using Constant Regexps281427 -Node: Variables284432 -Node: Using Variables285087 -Node: Assignment Options286814 -Node: Conversion288695 -Ref: table-locale-affects294069 -Ref: Conversion-Footnote-1294693 -Node: All Operators294802 -Node: Arithmetic Ops295432 -Node: Concatenation297938 -Ref: Concatenation-Footnote-1300731 -Node: Assignment Ops300850 -Ref: table-assign-ops305838 -Node: Increment Ops307246 -Node: Truth Values and Conditions310724 -Node: Truth Values311807 -Node: Typing and Comparison312855 -Node: Variable Typing313644 -Ref: Variable Typing-Footnote-1317541 -Node: Comparison Operators317663 -Ref: table-relational-ops318073 -Node: POSIX String Comparison321622 -Ref: POSIX String Comparison-Footnote-1322579 -Node: Boolean Ops322717 -Ref: Boolean Ops-Footnote-1326795 -Node: Conditional Exp326886 -Node: Function Calls328618 -Node: Precedence332208 -Node: Patterns and Actions335861 -Node: Pattern Overview336915 -Node: Regexp Patterns338581 -Node: Expression Patterns339124 -Node: Ranges342698 -Node: BEGIN/END345664 -Node: Using BEGIN/END346414 -Ref: Using BEGIN/END-Footnote-1349145 -Node: I/O And BEGIN/END349259 -Node: Empty351528 -Node: BEGINFILE/ENDFILE351862 -Node: Using Shell Variables354686 -Node: Action Overview356965 -Node: Statements359322 -Node: If Statement361181 -Node: While Statement362680 -Node: Do Statement364724 -Node: For Statement365880 -Node: Switch Statement369032 -Node: Break Statement371129 -Node: Continue Statement373105 -Node: Next Statement374806 -Node: Nextfile Statement377188 -Node: Exit Statement379713 -Node: Built-in Variables382044 -Node: User-modified383139 -Ref: User-modified-Footnote-1391140 -Node: Auto-set391202 -Ref: Auto-set-Footnote-1400466 -Node: ARGC and ARGV400671 -Node: Arrays404430 -Node: Array Basics406001 -Node: Array Intro406712 -Node: Reference to Elements411030 -Node: Assigning Elements413300 -Node: Array Example413791 -Node: Scanning an Array415523 -Node: Delete418971 -Ref: Delete-Footnote-1421402 -Node: Numeric Array Subscripts421459 -Node: Uninitialized Subscripts423642 -Node: Multi-dimensional425270 -Node: Multi-scanning428361 -Node: Array Sorting429945 -Ref: Array Sorting-Footnote-1433143 -Node: Arrays of Arrays433337 -Node: Functions437876 -Node: Built-in438698 -Node: Calling Built-in439776 -Node: Numeric Functions441752 -Ref: Numeric Functions-Footnote-1445509 -Ref: Numeric Functions-Footnote-2445845 -Ref: Numeric Functions-Footnote-3445893 -Node: String Functions446162 -Ref: String Functions-Footnote-1467968 -Ref: String Functions-Footnote-2468097 -Ref: String Functions-Footnote-3468345 -Node: Gory Details468432 -Ref: table-sub-escapes470089 -Ref: table-posix-sub471403 -Ref: table-gensub-escapes472303 -Node: I/O Functions473474 -Ref: I/O Functions-Footnote-1480169 -Node: Time Functions480316 -Ref: Time Functions-Footnote-1491183 -Ref: Time Functions-Footnote-2491251 -Ref: Time Functions-Footnote-3491409 -Ref: Time Functions-Footnote-4491520 -Ref: Time Functions-Footnote-5491632 -Ref: Time Functions-Footnote-6491859 -Node: Bitwise Functions492125 -Ref: table-bitwise-ops492683 -Ref: Bitwise Functions-Footnote-1496843 -Node: Type Functions497027 -Node: I18N Functions497465 -Node: User-defined499092 -Node: Definition Syntax499896 -Ref: Definition Syntax-Footnote-1504533 -Node: Function Example504602 -Node: Function Caveats507196 -Node: Calling A Function507617 -Node: Variable Scope508732 -Node: Pass By Value/Reference510660 -Node: Return Statement514100 -Node: Dynamic Typing517042 -Node: Indirect Calls517779 -Node: Internationalization527461 -Node: I18N and L10N528889 -Node: Explaining gettext529575 -Ref: Explaining gettext-Footnote-1534637 -Ref: Explaining gettext-Footnote-2534820 -Node: Programmer i18n534985 -Node: Translator i18n539276 -Node: String Extraction540069 -Ref: String Extraction-Footnote-1541030 -Node: Printf Ordering541116 -Ref: Printf Ordering-Footnote-1543900 -Node: I18N Portability543964 -Ref: I18N Portability-Footnote-1546413 -Node: I18N Example546476 -Ref: I18N Example-Footnote-1549111 -Node: Gawk I18N549183 -Node: Advanced Features549800 -Node: Nondecimal Data551119 -Node: Two-way I/O552700 -Ref: Two-way I/O-Footnote-1558114 -Node: TCP/IP Networking558191 -Node: Profiling561034 -Node: Library Functions568434 -Ref: Library Functions-Footnote-1571473 -Node: Library Names571644 -Ref: Library Names-Footnote-1575115 -Ref: Library Names-Footnote-2575335 -Node: General Functions575421 -Node: Nextfile Function576484 -Node: Strtonum Function580865 -Node: Assert Function583816 -Node: Round Function587142 -Node: Cliff Random Function588683 -Node: Ordinal Functions589699 -Ref: Ordinal Functions-Footnote-1592769 -Ref: Ordinal Functions-Footnote-2593021 -Node: Join Function593237 -Ref: Join Function-Footnote-1595008 -Node: Gettimeofday Function595208 -Node: Data File Management598923 -Node: Filetrans Function599555 -Node: Rewind Function603792 -Node: File Checking605245 -Node: Empty Files606339 -Node: Ignoring Assigns608569 -Node: Getopt Function610122 -Ref: Getopt Function-Footnote-1621447 -Node: Passwd Functions621650 -Ref: Passwd Functions-Footnote-1630637 -Node: Group Functions630725 -Node: Walking Arrays638827 -Node: Sample Programs640393 -Node: Running Examples641058 -Node: Clones641786 -Node: Cut Program642909 -Node: Egrep Program652750 -Ref: Egrep Program-Footnote-1660521 -Node: Id Program660631 -Node: Split Program664247 -Ref: Split Program-Footnote-1667766 -Node: Tee Program667894 -Node: Uniq Program670697 -Node: Wc Program678120 -Ref: Wc Program-Footnote-1682384 -Node: Miscellaneous Programs682584 -Node: Dupword Program683772 -Node: Alarm Program685803 -Node: Translate Program690525 -Ref: Translate Program-Footnote-1694904 -Ref: Translate Program-Footnote-2695132 -Node: Labels Program695266 -Ref: Labels Program-Footnote-1698637 -Node: Word Sorting698721 -Node: History Sorting703066 -Node: Extract Program704904 -Ref: Extract Program-Footnote-1712385 -Node: Simple Sed712513 -Node: Igawk Program715575 -Ref: Igawk Program-Footnote-1730607 -Ref: Igawk Program-Footnote-2730808 -Node: Anagram Program730946 -Node: Signature Program734044 -Node: Debugger735147 -Node: Debugging736058 -Node: Debugging Concepts736372 -Node: Debugging Terms738228 -Node: Awk Debugging740773 -Node: Sample dgawk session741665 -Node: dgawk invocation742157 -Node: Finding The Bug743339 -Node: List of Debugger Commands749824 -Node: Breakpoint Control751135 -Node: Dgawk Execution Control754611 -Node: Viewing And Changing Data757962 -Node: Dgawk Stack761271 -Node: Dgawk Info762731 -Node: Miscellaneous Dgawk Commands766679 -Node: Readline Support772107 -Node: Dgawk Limitations772934 -Node: Language History775073 -Node: V7/SVR3.1776505 -Node: SVR4778800 -Node: POSIX780242 -Node: BTL781240 -Node: POSIX/GNU781974 -Node: Common Extensions787160 -Node: Contributors788294 -Node: Installation792329 -Node: Gawk Distribution793223 -Node: Getting793707 -Node: Extracting794533 -Node: Distribution contents796211 -Node: Unix Installation801229 -Node: Quick Installation801846 -Node: Additional Configuration Options803808 -Node: Configuration Philosophy805285 -Node: Non-Unix Installation807627 -Node: PC Installation808085 -Node: PC Binary Installation809384 -Node: PC Compiling811232 -Node: PC Testing814176 -Node: PC Using815352 -Node: Cygwin819537 -Node: MSYS820534 -Node: VMS Installation821048 -Node: VMS Compilation821654 -Ref: VMS Compilation-Footnote-1822661 -Node: VMS Installation Details822719 -Node: VMS Running824354 -Node: VMS Old Gawk825954 -Node: Bugs826428 -Node: Other Versions830293 -Node: Notes835572 -Node: Compatibility Mode836264 -Node: Additions837047 -Node: Accessing The Source837859 -Node: Adding Code839282 -Node: New Ports844830 -Node: Dynamic Extensions848943 -Node: Internals850319 -Node: Plugin License859435 -Node: Sample Library860069 -Node: Internal File Description860755 -Node: Internal File Ops864462 -Ref: Internal File Ops-Footnote-1869230 -Node: Using Internal File Ops869378 -Node: Future Extensions871755 -Node: Basic Concepts874259 -Node: Basic High Level875016 -Ref: Basic High Level-Footnote-1879051 -Node: Basic Data Typing879236 -Node: Floating Point Issues883761 -Node: String Conversion Precision884844 -Ref: String Conversion Precision-Footnote-1886538 -Node: Unexpected Results886647 -Node: POSIX Floating Point Problems888473 -Ref: POSIX Floating Point Problems-Footnote-1892175 -Node: Glossary892213 -Node: Copying916312 -Node: GNU Free Documentation License953869 -Node: next-edition979013 -Node: unresolved979365 -Node: revision979865 -Node: consistency980288 -Node: Index983787 +Ref: Regexp Operators-Footnote-1142326 +Ref: Regexp Operators-Footnote-2142473 +Node: Character Lists142571 +Ref: table-char-classes144362 +Node: GNU Regexp Operators147006 +Node: Case-sensitivity150725 +Ref: Case-sensitivity-Footnote-1153684 +Ref: Case-sensitivity-Footnote-2153919 +Node: Leftmost Longest154027 +Node: Computed Regexps155228 +Node: Locales158649 +Node: Reading Files162191 +Node: Records164132 +Ref: Records-Footnote-1172811 +Node: Fields172848 +Ref: Fields-Footnote-1175880 +Node: Nonconstant Fields175966 +Node: Changing Fields178168 +Node: Field Separators183458 +Node: Default Field Splitting186087 +Node: Regexp Field Splitting187204 +Node: Single Character Fields190563 +Node: Command Line Field Separator191622 +Node: Field Splitting Summary195061 +Ref: Field Splitting Summary-Footnote-1198247 +Node: Constant Size198348 +Node: Splitting By Content202910 +Ref: Splitting By Content-Footnote-1206636 +Node: Multiple Line206676 +Ref: Multiple Line-Footnote-1212523 +Node: Getline212702 +Node: Plain Getline214930 +Node: Getline/Variable217019 +Node: Getline/File218160 +Node: Getline/Variable/File219482 +Ref: Getline/Variable/File-Footnote-1221081 +Node: Getline/Pipe221168 +Node: Getline/Variable/Pipe223716 +Node: Getline/Coprocess224823 +Node: Getline/Variable/Coprocess226066 +Node: Getline Notes226780 +Node: Getline Summary228722 +Ref: table-getline-variants229006 +Node: Command line directories229911 +Node: Printing230536 +Node: Print232167 +Node: Print Examples233504 +Node: Output Separators236288 +Node: OFMT238047 +Node: Printf239405 +Node: Basic Printf240311 +Node: Control Letters241848 +Node: Format Modifiers245660 +Node: Printf Examples251671 +Node: Redirection254386 +Node: Special Files261364 +Node: Special FD261897 +Ref: Special FD-Footnote-1265508 +Node: Special Network265582 +Node: Special Caveats266437 +Node: Close Files And Pipes267231 +Ref: Close Files And Pipes-Footnote-1274255 +Ref: Close Files And Pipes-Footnote-2274403 +Node: Expressions274553 +Node: Values275622 +Node: Constants276298 +Node: Scalar Constants276978 +Ref: Scalar Constants-Footnote-1277837 +Node: Nondecimal-numbers278019 +Node: Regexp Constants281078 +Node: Using Constant Regexps281553 +Node: Variables284558 +Node: Using Variables285213 +Node: Assignment Options286940 +Node: Conversion288821 +Ref: table-locale-affects294195 +Ref: Conversion-Footnote-1294819 +Node: All Operators294928 +Node: Arithmetic Ops295558 +Node: Concatenation298064 +Ref: Concatenation-Footnote-1300857 +Node: Assignment Ops300976 +Ref: table-assign-ops305964 +Node: Increment Ops307372 +Node: Truth Values and Conditions310850 +Node: Truth Values311933 +Node: Typing and Comparison312981 +Node: Variable Typing313770 +Ref: Variable Typing-Footnote-1317667 +Node: Comparison Operators317789 +Ref: table-relational-ops318199 +Node: POSIX String Comparison321748 +Ref: POSIX String Comparison-Footnote-1322705 +Node: Boolean Ops322843 +Ref: Boolean Ops-Footnote-1326921 +Node: Conditional Exp327012 +Node: Function Calls328744 +Node: Precedence332334 +Node: Patterns and Actions335987 +Node: Pattern Overview337041 +Node: Regexp Patterns338707 +Node: Expression Patterns339250 +Node: Ranges342824 +Node: BEGIN/END345790 +Node: Using BEGIN/END346540 +Ref: Using BEGIN/END-Footnote-1349271 +Node: I/O And BEGIN/END349385 +Node: Empty351654 +Node: BEGINFILE/ENDFILE351988 +Node: Using Shell Variables354812 +Node: Action Overview357091 +Node: Statements359448 +Node: If Statement361307 +Node: While Statement362806 +Node: Do Statement364850 +Node: For Statement366006 +Node: Switch Statement369158 +Node: Break Statement371255 +Node: Continue Statement373231 +Node: Next Statement374932 +Node: Nextfile Statement377314 +Node: Exit Statement379839 +Node: Built-in Variables382170 +Node: User-modified383265 +Ref: User-modified-Footnote-1391266 +Node: Auto-set391328 +Ref: Auto-set-Footnote-1400592 +Node: ARGC and ARGV400797 +Node: Arrays404556 +Node: Array Basics406127 +Node: Array Intro406838 +Node: Reference to Elements411156 +Node: Assigning Elements413426 +Node: Array Example413917 +Node: Scanning an Array415649 +Node: Delete419097 +Ref: Delete-Footnote-1421528 +Node: Numeric Array Subscripts421585 +Node: Uninitialized Subscripts423768 +Node: Multi-dimensional425396 +Node: Multi-scanning428487 +Node: Array Sorting430071 +Ref: Array Sorting-Footnote-1433269 +Node: Arrays of Arrays433463 +Node: Functions438002 +Node: Built-in438824 +Node: Calling Built-in439902 +Node: Numeric Functions441878 +Ref: Numeric Functions-Footnote-1445635 +Ref: Numeric Functions-Footnote-2445971 +Ref: Numeric Functions-Footnote-3446019 +Node: String Functions446288 +Ref: String Functions-Footnote-1468094 +Ref: String Functions-Footnote-2468223 +Ref: String Functions-Footnote-3468471 +Node: Gory Details468558 +Ref: table-sub-escapes470215 +Ref: table-posix-sub471529 +Ref: table-gensub-escapes472429 +Node: I/O Functions473600 +Ref: I/O Functions-Footnote-1480295 +Node: Time Functions480442 +Ref: Time Functions-Footnote-1491309 +Ref: Time Functions-Footnote-2491377 +Ref: Time Functions-Footnote-3491535 +Ref: Time Functions-Footnote-4491646 +Ref: Time Functions-Footnote-5491758 +Ref: Time Functions-Footnote-6491985 +Node: Bitwise Functions492251 +Ref: table-bitwise-ops492809 +Ref: Bitwise Functions-Footnote-1496969 +Node: Type Functions497153 +Node: I18N Functions497591 +Node: User-defined499218 +Node: Definition Syntax500022 +Ref: Definition Syntax-Footnote-1504659 +Node: Function Example504728 +Node: Function Caveats507322 +Node: Calling A Function507743 +Node: Variable Scope508858 +Node: Pass By Value/Reference510786 +Node: Return Statement514226 +Node: Dynamic Typing517168 +Node: Indirect Calls517905 +Node: Internationalization527587 +Node: I18N and L10N529015 +Node: Explaining gettext529701 +Ref: Explaining gettext-Footnote-1534763 +Ref: Explaining gettext-Footnote-2534946 +Node: Programmer i18n535111 +Node: Translator i18n539402 +Node: String Extraction540195 +Ref: String Extraction-Footnote-1541156 +Node: Printf Ordering541242 +Ref: Printf Ordering-Footnote-1544026 +Node: I18N Portability544090 +Ref: I18N Portability-Footnote-1546539 +Node: I18N Example546602 +Ref: I18N Example-Footnote-1549237 +Node: Gawk I18N549309 +Node: Advanced Features549926 +Node: Nondecimal Data551245 +Node: Two-way I/O552826 +Ref: Two-way I/O-Footnote-1558240 +Node: TCP/IP Networking558317 +Node: Profiling561160 +Node: Library Functions568560 +Ref: Library Functions-Footnote-1571599 +Node: Library Names571770 +Ref: Library Names-Footnote-1575241 +Ref: Library Names-Footnote-2575461 +Node: General Functions575547 +Node: Nextfile Function576610 +Node: Strtonum Function580991 +Node: Assert Function583942 +Node: Round Function587268 +Node: Cliff Random Function588809 +Node: Ordinal Functions589825 +Ref: Ordinal Functions-Footnote-1592895 +Ref: Ordinal Functions-Footnote-2593147 +Node: Join Function593363 +Ref: Join Function-Footnote-1595134 +Node: Gettimeofday Function595334 +Node: Data File Management599049 +Node: Filetrans Function599681 +Node: Rewind Function603918 +Node: File Checking605371 +Node: Empty Files606465 +Node: Ignoring Assigns608695 +Node: Getopt Function610248 +Ref: Getopt Function-Footnote-1621573 +Node: Passwd Functions621776 +Ref: Passwd Functions-Footnote-1630763 +Node: Group Functions630851 +Node: Walking Arrays638953 +Node: Sample Programs640519 +Node: Running Examples641184 +Node: Clones641912 +Node: Cut Program643035 +Node: Egrep Program652884 +Ref: Egrep Program-Footnote-1660655 +Node: Id Program660765 +Node: Split Program664381 +Ref: Split Program-Footnote-1667900 +Node: Tee Program668028 +Node: Uniq Program670831 +Node: Wc Program678254 +Ref: Wc Program-Footnote-1682518 +Node: Miscellaneous Programs682718 +Node: Dupword Program683906 +Node: Alarm Program685937 +Node: Translate Program690659 +Ref: Translate Program-Footnote-1695038 +Ref: Translate Program-Footnote-2695266 +Node: Labels Program695400 +Ref: Labels Program-Footnote-1698771 +Node: Word Sorting698855 +Node: History Sorting703200 +Node: Extract Program705038 +Ref: Extract Program-Footnote-1712519 +Node: Simple Sed712647 +Node: Igawk Program715709 +Ref: Igawk Program-Footnote-1730741 +Ref: Igawk Program-Footnote-2730942 +Node: Anagram Program731080 +Node: Signature Program734178 +Node: Debugger735281 +Node: Debugging736192 +Node: Debugging Concepts736506 +Node: Debugging Terms738362 +Node: Awk Debugging740907 +Node: Sample dgawk session741799 +Node: dgawk invocation742291 +Node: Finding The Bug743473 +Node: List of Debugger Commands749958 +Node: Breakpoint Control751269 +Node: Dgawk Execution Control754745 +Node: Viewing And Changing Data758096 +Node: Dgawk Stack761405 +Node: Dgawk Info762865 +Node: Miscellaneous Dgawk Commands766813 +Node: Readline Support772241 +Node: Dgawk Limitations773068 +Node: Language History775207 +Node: V7/SVR3.1776639 +Node: SVR4778934 +Node: POSIX780376 +Node: BTL781374 +Node: POSIX/GNU782108 +Node: Common Extensions787294 +Node: Contributors788428 +Node: Installation792463 +Node: Gawk Distribution793357 +Node: Getting793841 +Node: Extracting794667 +Node: Distribution contents796345 +Node: Unix Installation801363 +Node: Quick Installation801980 +Node: Additional Configuration Options803942 +Node: Configuration Philosophy805419 +Node: Non-Unix Installation807761 +Node: PC Installation808219 +Node: PC Binary Installation809518 +Node: PC Compiling811366 +Node: PC Testing814310 +Node: PC Using815486 +Node: Cygwin819671 +Node: MSYS820668 +Node: VMS Installation821182 +Node: VMS Compilation821788 +Ref: VMS Compilation-Footnote-1822795 +Node: VMS Installation Details822853 +Node: VMS Running824488 +Node: VMS Old Gawk826088 +Node: Bugs826562 +Node: Other Versions830427 +Node: Notes835706 +Node: Compatibility Mode836398 +Node: Additions837181 +Node: Accessing The Source837993 +Node: Adding Code839416 +Node: New Ports844964 +Node: Dynamic Extensions849077 +Node: Internals850453 +Node: Plugin License859569 +Node: Sample Library860203 +Node: Internal File Description860889 +Node: Internal File Ops864596 +Ref: Internal File Ops-Footnote-1869364 +Node: Using Internal File Ops869512 +Node: Future Extensions871889 +Node: Basic Concepts874393 +Node: Basic High Level875150 +Ref: Basic High Level-Footnote-1879185 +Node: Basic Data Typing879370 +Node: Floating Point Issues883895 +Node: String Conversion Precision884978 +Ref: String Conversion Precision-Footnote-1886672 +Node: Unexpected Results886781 +Node: POSIX Floating Point Problems888607 +Ref: POSIX Floating Point Problems-Footnote-1892309 +Node: Glossary892347 +Node: Copying916446 +Node: GNU Free Documentation License954003 +Node: next-edition979147 +Node: unresolved979499 +Node: revision979999 +Node: consistency980422 +Node: Index983921 End Tag Table diff --git a/doc/gawk.texi b/doc/gawk.texi index 19f5d3d5..7f3c3d91 100644 --- a/doc/gawk.texi +++ b/doc/gawk.texi @@ -4327,23 +4327,23 @@ may not be able to match the @sc{nul} character. @cindex @code{[]} (square brackets) @cindex square brackets (@code{[]}) -@cindex character lists -@cindex character sets, See Also character lists -@cindex bracket expressions, See character lists +@cindex bracket expressions +@cindex character sets, See Also bracket expressions +@cindex character lists, See bracket expressions @item [@dots{}] -This is called a @dfn{character list}.@footnote{In other literature, -you may see a character list referred to as either a -@dfn{character set}, a @dfn{character class}, or a @dfn{bracket expression}.} +This is called a @dfn{bracket expression}.@footnote{In other literature, +you may see a bracket expression referred to as either a +@dfn{character set}, a @dfn{character class}, or a @dfn{character list}.} It matches any @emph{one} of the characters that are enclosed in the square brackets. For example, @samp{[MVX]} matches any one of the characters @samp{M}, @samp{V}, or @samp{X} in a string. A full -discussion of what can be inside the square brackets of a character list +discussion of what can be inside the square brackets of a bracket expression is given in @ref{Character Lists}. -@cindex character lists, complemented +@cindex bracket expressions, complemented @item [^ @dots{}] -This is a @dfn{complemented character list}. The first character after +This is a @dfn{complemented bracket expression}. The first character after the @samp{[} @emph{must} be a @samp{^}. It matches any characters @emph{except} those in the square brackets. For example, @samp{[^awk]} matches any character that is not an @samp{a}, @samp{w}, @@ -4483,11 +4483,11 @@ regular expressions. @node Character Lists @section Using Character Lists @c STARTOFRANGE charlist -@cindex character lists -@cindex character lists, range expressions +@cindex bracket expressions +@cindex bracket expressions, range expressions @cindex range expressions (regexps) -Within a character list, a @dfn{range expression} consists of two +Within a bracket expression, a @dfn{range expression} consists of two characters separated by a hyphen. It matches any single character that sorts between the two characters, using the locale's collating sequence and character set. @@ -4497,14 +4497,14 @@ Unfortunately, providing simple character ranges such as @samp{[a-z]} usually does not work like you might expect, due to locale-related issues. This is discussed more fully, in @ref{Locales}. -@cindex @code{\} (backslash), in character lists -@cindex backslash (@code{\}), in character lists -@cindex @code{^} (caret), in character lists -@cindex caret (@code{^}), in character lists -@cindex @code{-} (hyphen), in character lists -@cindex hyphen (@code{-}), in character lists +@cindex @code{\} (backslash), in bracket expressions +@cindex backslash (@code{\}), in bracket expressions +@cindex @code{^} (caret), in bracket expressions +@cindex caret (@code{^}), in bracket expressions +@cindex @code{-} (hyphen), in bracket expressions +@cindex hyphen (@code{-}), in bracket expressions To include one of the characters @samp{\}, @samp{]}, @samp{-}, or @samp{^} in a -character list, put a @samp{\} in front of it. For example: +bracket expression, put a @samp{\} in front of it. For example: @example [d\]] @@ -4513,11 +4513,11 @@ character list, put a @samp{\} in front of it. For example: @noindent matches either @samp{d} or @samp{]}. -@cindex POSIX @command{awk}, character lists and +@cindex POSIX @command{awk}, bracket expressions and @cindex Extended Regular Expressions (EREs) @cindex EREs (Extended Regular Expressions) @cindex @command{egrep} utility -This treatment of @samp{\} in character lists +This treatment of @samp{\} in bracket expressions is compatible with other @command{awk} implementations and is also mandated by POSIX. The regular expressions in @command{awk} are a superset @@ -4525,8 +4525,8 @@ of the POSIX specification for Extended Regular Expressions (EREs). POSIX EREs are based on the regular expressions accepted by the traditional @command{egrep} utility. -@cindex character lists, character classes -@cindex POSIX @command{awk}, character lists and, character classes +@cindex bracket expressions, character classes +@cindex POSIX @command{awk}, bracket expressions and, character classes @dfn{Character classes} are a feature introduced in the POSIX standard. A character class is a special notation for describing lists of characters that have a specific attribute, but the @@ -4535,7 +4535,7 @@ from character set to character set. For example, the notion of what is an alphabetic character differs between the United States and France. A character class is only valid in a regexp @emph{inside} the -brackets of a character list. Character classes consist of @samp{[:}, +brackets of a bracket expression. Character classes consist of @samp{[:}, a keyword denoting the class, and @samp{:]}. @ref{table-char-classes} lists the character classes defined by the POSIX standard. @@ -4570,10 +4570,10 @@ With the POSIX character classes, you can write @code{/[[:alnum:]]/} to match the alphabetic and numeric characters in your character set. -@cindex character lists, collating elements -@cindex character lists, non-ASCII +@cindex bracket expressions, collating elements +@cindex bracket expressions, non-ASCII @cindex collating elements -Two additional special sequences can appear in character lists. +Two additional special sequences can appear in bracket expressions. These apply to non-ASCII character sets, which can have single symbols (called @dfn{collating elements}) that are represented with more than one character. They can also have several characters that are equivalent for @@ -4582,7 +4582,7 @@ and a grave-accented ``@`e'' are equivalent.) These sequences are: @table @asis -@cindex character lists, collating symbols +@cindex bracket expressions, collating symbols @cindex collating symbols @item Collating symbols Multicharacter collating elements enclosed between @@ -4590,7 +4590,7 @@ Multicharacter collating elements enclosed between then @code{[[.ch.]]} is a regexp that matches this collating element, whereas @code{[ch]} is a regexp that matches either @samp{c} or @samp{h}. -@cindex character lists, equivalence classes +@cindex bracket expressions, equivalence classes @item Equivalence classes Locale-specific names for a list of characters that are equal. The name is enclosed between @@ -4604,7 +4604,7 @@ These features are very valuable in non-English-speaking locales. @cindex internationalization, localization, character classes @cindex @command{gawk}, character classes and -@cindex POSIX @command{awk}, character lists and, character classes +@cindex POSIX @command{awk}, bracket expressions and, character classes @quotation CAUTION The library functions that @command{gawk} uses for regular expression matching currently recognize only POSIX character classes; @@ -4856,7 +4856,7 @@ that it is possible, using something like and @samp{IGNORECASE = 0 || /foobar/ @{ @dots{} @}}. However, this is somewhat obscure and we don't recommend it.} -To do this, use either character lists or @code{tolower()}. However, one +To do this, use either bracket expressions or @code{tolower()}. However, one thing you can do with @code{IGNORECASE} only is dynamically turn case-sensitivity on or off for all the rules at once. @@ -5017,7 +5017,7 @@ intend a regexp match. @cindex newlines, in dynamic regexps Some commercial versions of @command{awk} do not allow the newline -character to be used inside a character list for a dynamic regexp: +character to be used inside a bracket expression for a dynamic regexp: @example $ @kbd{awk '$0 ~ "[ \t\n]"'} @@ -5122,7 +5122,7 @@ For the normal case of @samp{RS = "\n"}, the locale is largely irrelevant. For other single-character record separators, using @samp{LC_ALL=C} will give you much better performance when reading records. Otherwise, @command{gawk} has to make several function calls, @emph{per input -character} to find the record terminator. +character}, to find the record terminator. Finally, the locale affects the value of the decimal point character used when @command{gawk} parses input data. This is discussed in @@ -8657,6 +8657,8 @@ returns zero on success and non-zero otherwise. In general, different implementations vary in what they report when closing pipes; thus the return value cannot be used portably. @value{DARKCORNER} +In POSIX mode (@pxref{Options}), @command{gawk} just returns zero +when closing a pipe. @c ENDOFRANGE ifc @c ENDOFRANGE ofc @@ -21643,7 +21645,7 @@ The @code{set_charlist()} function is more complicated than @code{set_fieldlist()}. The idea here is to use @command{gawk}'s @code{FIELDWIDTHS} variable (@pxref{Constant Size}), -which describes constant-width input. When using a character list, that is +which describes constant-width input. When using a bracket expression, that is exactly what we have. Setting up @code{FIELDWIDTHS} is more complicated than simply listing the @@ -21671,7 +21673,7 @@ function set_charlist( field, i, j, f, g, t, if (index(f[i], "-") != 0) @{ # range m = split(f[i], g, "-") if (m != 2 || g[1] >= g[2]) @{ - printf("bad character list: %s\n", + printf("bad bracket expression: %s\n", f[i]) > "/dev/stderr" exit 1 @} @@ -22189,6 +22191,8 @@ arguments and perform in the same way. @node Split Program @subsection Splitting a Large File into Pieces +@c FIXME: One day, update to current POSIX version of split + @c STARTOFRANGE filspl @cindex files, splitting @cindex @code{split} utility @@ -22458,6 +22462,8 @@ END \ @node Uniq Program @subsection Printing Nonduplicated Lines of Text +@c FIXME: One day, update to current POSIX version of uniq + @c STARTOFRANGE prunt @cindex printing, unduplicated lines of text @c STARTOFRANGE tpul @@ -22717,6 +22723,8 @@ END @{ @node Wc Program @subsection Counting Things +@c FIXME: One day, update to current POSIX version of wc + @c STARTOFRANGE count @cindex counting @c STARTOFRANGE infco |