aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info682
1 files changed, 357 insertions, 325 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index a67eafbb..06d2dbb9 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -9409,24 +9409,23 @@ with a pound sign (`#').
words; separate pairs of words by a single space. One word
controls sort direction, `ascending' or `descending'; another
controls the sort key, `index' or `value'; and the remaining
- one, which is only valid for sorting by index, is comparison
- mode, `string' or `number'. When two or three words are
- present, they may be specified in any order, so `ascending
- index string' and `string ascending index' are equivalent.
- Also, each word may be truncated, so `asc index str' and `a i
- s' are also equivalent. Note that a separating space is
- required even when the words have been shortened down to one
- letter each.
+ one affects comparison mode, `string' or `number'. When two
+ or three words are present, they may be specified in any
+ order, so `ascending index string' and `string ascending
+ index' are equivalent. Also, each word may be truncated, so
+ `asc index str' and `a i s' are also equivalent. Note that a
+ separating space is required even when the words have been
+ shortened down to one letter each.
You can omit direction and/or key type and/or comparison
mode. Provided that at least one is present, the missing
parts of a sort specification default to `ascending',
- `index', and (for indices only) `string', respectively. An
- empty string, `""', is the same as `unsorted' and will cause
- `for (index in array) ...' to process the indices in
- arbitrary order. Another thing to note is that the array
- sorting takes place at the time the `for' loop is about to
- start executing, so changing the value of
+ `index', and `string', respectively. An empty string, `""',
+ is the same as `ascending index string', and a value of
+ `unsorted' will cause `for (index in array) ...' to process
+ the indices in arbitrary order. Another thing to note is
+ that the array sorting takes place at the time the `for' loop
+ is about to start executing, so changing the value of
`PROCINFO["sorted_in"]' during loop execution does not have
any effect on the order in which any remaining array elements
get processed. *Note Scanning an Array::, for more
@@ -9972,11 +9971,14 @@ are available:
process. Any index with non-numeric value will end up positioned
as if it were zero.
-`ascending value'
- Order by element values rather than by indices. Comparisons are
- done as numeric when both values being compared are numeric, or
- done as strings when either or both aren't numeric (*note Variable
- Typing::). Subarrays, if present, come out last.
+`ascending value string'
+ Order by element values rather than by indices. Scalar values are
+ compared as strings. Subarrays, if present, come out last.
+
+`ascending value number'
+ Order by values but force scalar values to be treated as numbers
+ for the purpose of comparison. If there are subarrays, those
+ appear at the end of the sorted list.
`descending index string'
Reverse order from the most basic sort.
@@ -9984,22 +9986,31 @@ are available:
`descending index number'
Numeric indices ordered from high to low.
-`descending value'
- Element values ordered from high to low. Subarrays, if present,
- come out first.
+`descending value string'
+ Element values, treated as strings, ordered from high to low.
+ Subarrays, if present, come out first.
+
+`descending value number'
+ Element values, treated as numbers, ordered from high to low.
+ Subarrays, if present, come out first.
`unsorted'
Array elements are processed in arbitrary order, the normal `awk'
- behavior.
+ behavior. You can also get the normal behavior by just deleting
+ the `"sorted_in"' item from the `PROCINFO' array, if it previously
+ had a value assigned to it.
The array traversal order is determined before the `for' loop starts
-to run. Changing `PROCINFO["sorted_in"]' in the looop body will not
+to run. Changing `PROCINFO["sorted_in"]' in the loop body will not
affect the loop.
Portions of the sort specification string may be truncated or
omitted. The default is `ascending' for direction, `index' for sort
-key type, and (when sorting by index only) `string' for comparison mode.
-For example:
+key type, and `string' for comparison mode. This implies that one can
+simply assign the empty string, "", instead of "ascending index string"
+to `PROCINFO["sorted_in"]' for the same effect.
+
+ For example:
$ gawk 'BEGIN {
> a[4] = 4
@@ -10025,11 +10036,6 @@ value, regardless of what the subarray itself contains, and all
subarrays are treated as being equal to each other. Their order
relative to each other is determined by their index strings.
- Sorting by array element values (for values other than subarrays)
-always uses basic `awk' comparison mode: if both values happen to be
-numbers then they're compared as numbers, otherwise they're compared as
-strings.
-
When string comparisons are made during a sort, either for element
values where one or both aren't numbers or for element indices handled
as strings, the value of `IGNORECASE' (*note Built-in Variables::)
@@ -10365,8 +10371,7 @@ For example:
After the call to `asort()', the array `data' is indexed from 1 to
some number N, the total number of elements in `data'. (This count is
`asort()''s return value.) `data[1]' <= `data[2]' <= `data[3]', and so
-on. The comparison of array elements is done using `gawk''s usual
-comparison rules (*note Typing and Comparison::).
+on. The array elements are compared as strings.
An important side effect of calling `asort()' is that _the array's
original indices are irrevocably lost_. As this isn't always
@@ -10381,6 +10386,19 @@ desirable, `asort()' accepts a second argument:
and then sorts `dest', destroying its indices. However, the `source'
array is not affected.
+ `asort()' and `asorti()' accept a third string argument to control
+the comparison rule for the array elements, and the direction of the
+sorted results. The valid comparison modes are `string' and `number',
+and the direction can be either `ascending' or `descending'. Either
+mode or direction, or both, can be omitted in which case the defaults,
+`string' or `ascending' is assumed for the comparison mode and the
+direction, respectively. Seperate comparison mode from direction with
+a single space, and they can appear in any order. To compare the
+elements as numbers, and to reverse the elements of the `dest' array,
+the call to asort in the above example can be replaced with:
+
+ asort(source, dest, "descending number")
+
Often, what's needed is to sort on the values of the _indices_
instead of the values of the elements. To do that, use the `asorti()'
function. The interface is identical to that of `asort()', except that
@@ -10403,7 +10421,8 @@ result array:
Sorting the array by replacing the indices provides maximal
flexibility. To traverse the elements in decreasing order, use a loop
that goes from N down to 1, either over the elements or over the
-indices.
+indices. This is an alternative to specifying `descending' for the
+sorting order using the optional third argument.
Copying array indices and elements isn't expensive in terms of
memory. Internally, `gawk' maintains "reference counts" to data. For
@@ -10411,12 +10430,10 @@ example, when `asort()' copies the first array to the second one, there
is only one copy of the original array elements' data, even though both
arrays use the values.
- We said previously that comparisons are done using `gawk''s "usual
-comparison rules." Because `IGNORECASE' affects string comparisons,
-the value of `IGNORECASE' also affects sorting for both `asort()' and
-`asorti()'. Note also that the locale's sorting order does _not_ come
-into play; comparisons are based on character values only.(1) Caveat
-Emptor.
+ Because `IGNORECASE' affects string comparisons, the value of
+`IGNORECASE' also affects sorting for both `asort()' and `asorti()'.
+Note also that the locale's sorting order does _not_ come into play;
+comparisons are based on character values only.(1) Caveat Emptor.
---------- Footnotes ----------
@@ -10780,15 +10797,26 @@ pound sign (`#'):
`&' with `sub()', `gsub()', and
`gensub()'.
-`asort(SOURCE [, DEST]) #'
+`asort(SOURCE [, DEST [, HOW ] ]) #'
Return the number of elements in the array SOURCE. `gawk' sorts
- the contents of SOURCE using the normal rules for comparing values
- (in particular, `IGNORECASE' affects the sorting) and replaces the
- indices of the sorted values of SOURCE with sequential integers
- starting with one. If the optional array DEST is specified, then
- SOURCE is duplicated into DEST. DEST is then sorted, leaving the
- indices of SOURCE unchanged. For example, if the contents of `a'
- are as follows:
+ the contents of SOURCE and replaces the indices of the sorted
+ values of SOURCE with sequential integers starting with one. If
+ the optional array DEST is specified, then SOURCE is duplicated
+ into DEST. DEST is then sorted, leaving the indices of SOURCE
+ unchanged. The optional third argument HOW is a string which
+ controls the rule for comparing values, and the sort direction. A
+ single space is required between the comparison mode, `string' or
+ `number', and the direction specification, `ascending' or
+ `descending'. You can omit direction and/or mode in which case it
+ will default to `ascending' and `string', respectively. An empty
+ string "" is the same as the default `"ascending string"' for the
+ value of HOW. If the `source' array contains subarrays as values,
+ they will come out last(first) in the `dest' array for
+ `ascending'(`descending') order specification. The value of
+ `IGNORECASE' affects the sorting. *Note Scanning an Array::, for
+ more information.
+
+ For example, if the contents of `a' are as follows:
a["last"] = "de"
a["first"] = "sac"
@@ -10804,16 +10832,20 @@ pound sign (`#'):
a[2] = "de"
a[3] = "sac"
+ In order to reverse the direction of the sorted results in the
+ above example, `asort()' can be called with three arguments as
+ follows:
+
+ asort(a, a, "descending")
+
The `asort()' function is described in more detail in *note Array
Sorting::. `asort()' is a `gawk' extension; it is not available
in compatibility mode (*note Options::).
-`asorti(SOURCE [, DEST]) #'
+`asorti(SOURCE [, DEST [, HOW ] ]) #'
Return the number of elements in the array SOURCE. It works
similarly to `asort()', however, the _indices_ are sorted, instead
- of the values. As array indices are always strings, the
- comparison performed is always a string comparison. (Here too,
- `IGNORECASE' affects the sorting.)
+ of the values. (Here too, `IGNORECASE' affects the sorting.)
The `asorti()' function is described in more detail in *note Array
Sorting::. `asorti()' is a `gawk' extension; it is not available
@@ -24444,7 +24476,7 @@ Index
(line 67)
* advanced features, data files as single record: Records. (line 175)
* advanced features, fixed-width data: Constant Size. (line 9)
-* advanced features, FNR/NR variables: Auto-set. (line 230)
+* advanced features, FNR/NR variables: Auto-set. (line 229)
* advanced features, gawk: Advanced Features. (line 6)
* advanced features, gawk, network programming: TCP/IP Networking.
(line 6)
@@ -24518,7 +24550,7 @@ Index
* arrays, names of: Arrays. (line 18)
* arrays, scanning: Scanning an Array. (line 6)
* arrays, sorting: Array Sorting. (line 6)
-* arrays, sorting, IGNORECASE variable and: Array Sorting. (line 68)
+* arrays, sorting, IGNORECASE variable and: Array Sorting. (line 81)
* arrays, sparse: Array Intro. (line 71)
* arrays, subscripts: Numeric Array Subscripts.
(line 6)
@@ -24531,7 +24563,7 @@ Index
* asort() function (gawk) <1>: String Functions. (line 29)
* asort() function (gawk): Array Sorting. (line 6)
* asort() function (gawk), arrays, sorting: Array Sorting. (line 6)
-* asorti() function (gawk): String Functions. (line 57)
+* asorti() function (gawk): String Functions. (line 74)
* assert() function (C library): Assert Function. (line 6)
* assert() user-defined function: Assert Function. (line 28)
* assertions: Assert Function. (line 6)
@@ -24775,7 +24807,7 @@ Index
* caret (^), in bracket expressions: Bracket Expressions. (line 16)
* case keyword: Switch Statement. (line 6)
* case sensitivity, array indices and: Array Intro. (line 92)
-* case sensitivity, converting case: String Functions. (line 504)
+* case sensitivity, converting case: String Functions. (line 519)
* case sensitivity, example programs: Library Functions. (line 42)
* case sensitivity, gawk: Case-sensitivity. (line 26)
* case sensitivity, regexps and <1>: User-modified. (line 82)
@@ -24850,7 +24882,7 @@ Index
* common extensions, fflush() function: I/O Functions. (line 25)
* common extensions, func keyword: Definition Syntax. (line 83)
* common extensions, length() applied to an array: String Functions.
- (line 178)
+ (line 193)
* common extensions, nextfile statement: Nextfile Statement. (line 6)
* common extensions, RS as a regexp: Records. (line 115)
* common extensions, single character fields: Single Character Fields.
@@ -24892,7 +24924,7 @@ Index
* constants, types of: Constants. (line 6)
* continue statement: Continue Statement. (line 6)
* control statements: Statements. (line 6)
-* converting, case: String Functions. (line 504)
+* converting, case: String Functions. (line 519)
* converting, dates to timestamps: Time Functions. (line 74)
* converting, during subscripting: Numeric Array Subscripts.
(line 31)
@@ -24944,13 +24976,13 @@ Index
(line 47)
* dark corner, FILENAME variable <1>: Auto-set. (line 92)
* dark corner, FILENAME variable: Getline Notes. (line 19)
-* dark corner, FNR/NR variables: Auto-set. (line 230)
+* dark corner, FNR/NR variables: Auto-set. (line 229)
* dark corner, format-control characters: Control Letters. (line 18)
* dark corner, FS as null string: Single Character Fields.
(line 20)
* dark corner, input files: Records. (line 98)
* dark corner, invoking awk: Command Line. (line 16)
-* dark corner, length() function: String Functions. (line 164)
+* dark corner, length() function: String Functions. (line 179)
* dark corner, multiline records: Multiple Line. (line 35)
* dark corner, NF variable, decrementing: Changing Fields. (line 107)
* dark corner, OFMT variable: OFMT. (line 27)
@@ -24960,7 +24992,7 @@ Index
(line 148)
* dark corner, regexp constants, as arguments to user-defined functions: Using Constant Regexps.
(line 43)
-* dark corner, split() function: String Functions. (line 343)
+* dark corner, split() function: String Functions. (line 358)
* dark corner, strings, storing: Records. (line 191)
* dark corner, value of ARGV[0]: Auto-set. (line 35)
* data, fixed-width: Constant Size. (line 9)
@@ -25091,7 +25123,7 @@ Index
* deleting elements in arrays: Delete. (line 6)
* deleting entire arrays: Delete. (line 39)
* dgawk: Debugger. (line 6)
-* differences between gawk and awk: String Functions. (line 178)
+* differences between gawk and awk: String Functions. (line 193)
* differences in awk and gawk, ARGC/ARGV variables: ARGC and ARGV.
(line 88)
* differences in awk and gawk, ARGIND variable: Auto-set. (line 40)
@@ -25131,7 +25163,7 @@ Index
(line 34)
* differences in awk and gawk, LINT variable: User-modified. (line 98)
* differences in awk and gawk, match() function: String Functions.
- (line 241)
+ (line 256)
* differences in awk and gawk, next/nextfile statements: Nextfile Statement.
(line 6)
* differences in awk and gawk, print/printf statements: Format Modifiers.
@@ -25143,15 +25175,15 @@ Index
* differences in awk and gawk, regular expressions: Case-sensitivity.
(line 26)
* differences in awk and gawk, RS/RT variables: Records. (line 167)
-* differences in awk and gawk, RT variable: Auto-set. (line 219)
+* differences in awk and gawk, RT variable: Auto-set. (line 218)
* differences in awk and gawk, single-character fields: Single Character Fields.
(line 6)
* differences in awk and gawk, split() function: String Functions.
- (line 331)
+ (line 346)
* differences in awk and gawk, strings: Scalar Constants. (line 20)
* differences in awk and gawk, strings, storing: Records. (line 187)
* differences in awk and gawk, strtonum() function (gawk): String Functions.
- (line 386)
+ (line 401)
* differences in awk and gawk, TEXTDOMAIN variable: User-modified.
(line 153)
* differences in awk and gawk, trunc-mod operation: Arithmetic Ops.
@@ -25299,7 +25331,7 @@ Index
* extensions, common, fflush() function: I/O Functions. (line 25)
* extensions, common, func keyword: Definition Syntax. (line 83)
* extensions, common, length() applied to an array: String Functions.
- (line 178)
+ (line 193)
* extensions, common, nextfile statement: Nextfile Statement. (line 6)
* extensions, common, RS as a regexp: Records. (line 115)
* extensions, common, single character fields: Single Character Fields.
@@ -25424,7 +25456,7 @@ Index
* floating-point, numbers, AWKNUM internal type: Internals. (line 19)
* FNR variable <1>: Auto-set. (line 102)
* FNR variable: Records. (line 6)
-* FNR variable, changing: Auto-set. (line 230)
+* FNR variable, changing: Auto-set. (line 229)
* for statement: For Statement. (line 6)
* for statement, in arrays: Scanning an Array. (line 24)
* force_number() internal function: Internals. (line 27)
@@ -25561,7 +25593,7 @@ Index
* gawk, functions, adding: Dynamic Extensions. (line 10)
* gawk, hexadecimal numbers and: Nondecimal-numbers. (line 42)
* gawk, IGNORECASE variable in <1>: String Functions. (line 29)
-* gawk, IGNORECASE variable in <2>: Array Sorting. (line 68)
+* gawk, IGNORECASE variable in <2>: Array Sorting. (line 81)
* gawk, IGNORECASE variable in <3>: Array Intro. (line 92)
* gawk, IGNORECASE variable in <4>: User-modified. (line 82)
* gawk, IGNORECASE variable in: Case-sensitivity. (line 26)
@@ -25596,7 +25628,7 @@ Index
* gawk, regular expressions, operators: GNU Regexp Operators.
(line 6)
* gawk, regular expressions, precedence: Regexp Operators. (line 157)
-* gawk, RT variable in <1>: Auto-set. (line 219)
+* gawk, RT variable in <1>: Auto-set. (line 218)
* gawk, RT variable in <2>: Getline/Variable/File.
(line 10)
* gawk, RT variable in <3>: Multiple Line. (line 129)
@@ -25614,7 +25646,7 @@ Index
(line 63)
* General Public License (GPL): Glossary. (line 306)
* General Public License, See GPL: Manual History. (line 11)
-* gensub() function (gawk) <1>: String Functions. (line 68)
+* gensub() function (gawk) <1>: String Functions. (line 83)
* gensub() function (gawk): Using Constant Regexps.
(line 43)
* gensub() function (gawk), escape processing: Gory Details. (line 6)
@@ -25683,10 +25715,10 @@ Index
* group database, reading: Group Functions. (line 6)
* group file: Group Functions. (line 6)
* groups, information about: Group Functions. (line 6)
-* gsub() function <1>: String Functions. (line 121)
+* gsub() function <1>: String Functions. (line 136)
* gsub() function: Using Constant Regexps.
(line 43)
-* gsub() function, arguments of: String Functions. (line 444)
+* gsub() function, arguments of: String Functions. (line 459)
* gsub() function, escape processing: Gory Details. (line 6)
* h debugger command (alias for help): Miscellaneous Dgawk Commands.
(line 68)
@@ -25720,11 +25752,11 @@ Index
* igawk.sh program: Igawk Program. (line 124)
* ignore debugger command: Breakpoint Control. (line 86)
* IGNORECASE variable <1>: String Functions. (line 29)
-* IGNORECASE variable <2>: Array Sorting. (line 68)
+* IGNORECASE variable <2>: Array Sorting. (line 81)
* IGNORECASE variable <3>: Array Intro. (line 92)
* IGNORECASE variable <4>: User-modified. (line 82)
* IGNORECASE variable: Case-sensitivity. (line 26)
-* IGNORECASE variable, array sorting and: Array Sorting. (line 68)
+* IGNORECASE variable, array sorting and: Array Sorting. (line 81)
* IGNORECASE variable, array subscripts and: Array Intro. (line 92)
* IGNORECASE variable, in example programs: Library Functions.
(line 42)
@@ -25741,7 +25773,7 @@ Index
* in operator, arrays and: Reference to Elements.
(line 37)
* increment operators: Increment Ops. (line 6)
-* index() function: String Functions. (line 137)
+* index() function: String Functions. (line 152)
* indexing arrays: Array Intro. (line 50)
* indirect function calls: Indirect Calls. (line 6)
* info debugger command: Dgawk Info. (line 12)
@@ -25877,7 +25909,7 @@ Index
(line 11)
* left shift, bitwise: Bitwise Functions. (line 32)
* leftmost longest match: Multiple Line. (line 26)
-* length() function: String Functions. (line 148)
+* length() function: String Functions. (line 163)
* Lesser General Public License (LGPL): Glossary. (line 385)
* LGPL (Lesser General Public License): Glossary. (line 385)
* libmawk: Other Versions. (line 104)
@@ -25961,9 +25993,9 @@ Index
(line 6)
* marked strings, extracting: String Extraction. (line 6)
* Marx, Groucho: Increment Ops. (line 61)
-* match() function: String Functions. (line 188)
+* match() function: String Functions. (line 203)
* match() function, RSTART/RLENGTH variables: String Functions.
- (line 205)
+ (line 220)
* matching, expressions, See comparison expressions: Typing and Comparison.
(line 9)
* matching, leftmost longest: Multiple Line. (line 26)
@@ -26038,7 +26070,7 @@ Index
* not Boolean-logic operator: Boolean Ops. (line 6)
* NR variable <1>: Auto-set. (line 118)
* NR variable: Records. (line 6)
-* NR variable, changing: Auto-set. (line 230)
+* NR variable, changing: Auto-set. (line 229)
* null strings <1>: Basic Data Typing. (line 50)
* null strings <2>: Truth Values. (line 6)
* null strings <3>: Regexp Field Splitting.
@@ -26162,7 +26194,7 @@ Index
* parentheses (): Regexp Operators. (line 79)
* parentheses (), pgawk program: Profiling. (line 141)
* password file: Passwd Functions. (line 16)
-* patsplit() function: String Functions. (line 275)
+* patsplit() function: String Functions. (line 290)
* patterns: Patterns and Actions.
(line 6)
* patterns, comparison expressions as: Expression Patterns. (line 14)
@@ -26220,7 +26252,7 @@ Index
* portability, gawk: New Ports. (line 6)
* portability, gettext library and: Explaining gettext. (line 10)
* portability, internationalization and: I18N Portability. (line 6)
-* portability, length() function: String Functions. (line 157)
+* portability, length() function: String Functions. (line 172)
* portability, new awk vs. old awk: Conversion. (line 55)
* portability, next statement in user-defined functions: Pass By Value/Reference.
(line 91)
@@ -26228,7 +26260,7 @@ Index
* portability, operators: Increment Ops. (line 61)
* portability, operators, not in POSIX awk: Precedence. (line 98)
* portability, POSIXLY_CORRECT environment variable: Options. (line 305)
-* portability, substr() function: String Functions. (line 494)
+* portability, substr() function: String Functions. (line 509)
* portable object files <1>: Translator i18n. (line 6)
* portable object files: Explaining gettext. (line 36)
* portable object files, converting to message object files: I18N Example.
@@ -26264,7 +26296,7 @@ Index
* POSIX awk, field separators and: Fields. (line 6)
* POSIX awk, FS variable and: User-modified. (line 66)
* POSIX awk, function keyword in: Definition Syntax. (line 83)
-* POSIX awk, functions and, length(): String Functions. (line 157)
+* POSIX awk, functions and, length(): String Functions. (line 172)
* POSIX awk, GNU long options and: Options. (line 15)
* POSIX awk, interval expressions in: Regexp Operators. (line 135)
* POSIX awk, next/nextfile statements and: Next Statement. (line 45)
@@ -26402,7 +26434,7 @@ Index
* recursive functions: Definition Syntax. (line 73)
* redirection of input: Getline/File. (line 6)
* redirection of output: Redirection. (line 6)
-* reference counting, sorting arrays: Array Sorting. (line 62)
+* reference counting, sorting arrays: Array Sorting. (line 75)
* regexp constants <1>: Comparison Operators.
(line 103)
* regexp constants <2>: Regexp Constants. (line 6)
@@ -26468,8 +26500,8 @@ Index
* right angle bracket (>), >> operator (I/O): Redirection. (line 50)
* right shift, bitwise: Bitwise Functions. (line 32)
* Ritchie, Dennis: Basic Data Typing. (line 74)
-* RLENGTH variable: Auto-set. (line 206)
-* RLENGTH variable, match() function and: String Functions. (line 205)
+* RLENGTH variable: Auto-set. (line 205)
+* RLENGTH variable, match() function and: String Functions. (line 220)
* Robbins, Arnold <1>: Future Extensions. (line 6)
* Robbins, Arnold <2>: Bugs. (line 32)
* Robbins, Arnold <3>: Contributors. (line 106)
@@ -26493,9 +26525,9 @@ Index
* RS variable: Records. (line 20)
* RS variable, multiline records and: Multiple Line. (line 17)
* rshift() function (gawk): Bitwise Functions. (line 51)
-* RSTART variable: Auto-set. (line 212)
-* RSTART variable, match() function and: String Functions. (line 205)
-* RT variable <1>: Auto-set. (line 219)
+* RSTART variable: Auto-set. (line 211)
+* RSTART variable, match() function and: String Functions. (line 220)
+* RT variable <1>: Auto-set. (line 218)
* RT variable <2>: Getline/Variable/File.
(line 10)
* RT variable <3>: Multiple Line. (line 129)
@@ -26521,7 +26553,7 @@ Index
* search paths, for source files <2>: PC Using. (line 11)
* search paths, for source files <3>: Igawk Program. (line 364)
* search paths, for source files: AWKPATH Variable. (line 6)
-* searching: String Functions. (line 137)
+* searching: String Functions. (line 152)
* searching, files for regular expressions: Egrep Program. (line 6)
* searching, for words: Dupword Program. (line 6)
* sed utility <1>: Glossary. (line 12)
@@ -26560,7 +26592,7 @@ Index
* side effects: Concatenation. (line 42)
* side effects, array indexing: Reference to Elements.
(line 42)
-* side effects, asort() function: Array Sorting. (line 25)
+* side effects, asort() function: Array Sorting. (line 24)
* side effects, assignment expressions: Assignment Ops. (line 23)
* side effects, Boolean operators: Boolean Ops. (line 30)
* side effects, conditional expressions: Conditional Exp. (line 22)
@@ -26612,10 +26644,10 @@ Index
* sparse arrays: Array Intro. (line 71)
* Spencer, Henry: Glossary. (line 12)
* split utility: Split Program. (line 6)
-* split() function: String Functions. (line 297)
+* split() function: String Functions. (line 312)
* split() function, array elements, deleting: Delete. (line 57)
* split.awk program: Split Program. (line 30)
-* sprintf() function <1>: String Functions. (line 362)
+* sprintf() function <1>: String Functions. (line 377)
* sprintf() function: OFMT. (line 15)
* sprintf() function, OFMT variable and: User-modified. (line 124)
* sprintf() function, print/printf statements and: Round Function.
@@ -26664,14 +26696,14 @@ Index
* strings, null: Regexp Field Splitting.
(line 43)
* strings, numeric: Variable Typing. (line 6)
-* strings, splitting: String Functions. (line 317)
-* strtonum() function (gawk): String Functions. (line 369)
+* strings, splitting: String Functions. (line 332)
+* strtonum() function (gawk): String Functions. (line 384)
* strtonum() function (gawk), --non-decimal-data option and: Nondecimal Data.
(line 36)
-* sub() function <1>: String Functions. (line 390)
+* sub() function <1>: String Functions. (line 405)
* sub() function: Using Constant Regexps.
(line 43)
-* sub() function, arguments of: String Functions. (line 444)
+* sub() function, arguments of: String Functions. (line 459)
* sub() function, escape processing: Gory Details. (line 6)
* subscript separators: User-modified. (line 147)
* subscripts in arrays, multidimensional: Multi-dimensional. (line 10)
@@ -26684,7 +26716,7 @@ Index
* SUBSEP variable: User-modified. (line 147)
* SUBSEP variable, multidimensional arrays: Multi-dimensional.
(line 16)
-* substr() function: String Functions. (line 463)
+* substr() function: String Functions. (line 478)
* Sumner, Andrew: Other Versions. (line 55)
* switch statement: Switch Statement. (line 6)
* syntactic ambiguity: /= operator vs. /=.../ regexp constant: Assignment Ops.
@@ -26735,8 +26767,8 @@ Index
* timestamps, converting dates to: Time Functions. (line 74)
* timestamps, formatted: Gettimeofday Function.
(line 6)
-* tolower() function: String Functions. (line 505)
-* toupper() function: String Functions. (line 511)
+* tolower() function: String Functions. (line 520)
+* toupper() function: String Functions. (line 526)
* tr utility: Translate Program. (line 6)
* trace debugger command: Miscellaneous Dgawk Commands.
(line 110)
@@ -26759,9 +26791,9 @@ Index
* troubleshooting, gawk, fatal errors, function arguments: Calling Built-in.
(line 16)
* troubleshooting, getline function: File Checking. (line 25)
-* troubleshooting, gsub()/sub() functions: String Functions. (line 454)
-* troubleshooting, match() function: String Functions. (line 270)
-* troubleshooting, patsplit() function: String Functions. (line 293)
+* troubleshooting, gsub()/sub() functions: String Functions. (line 469)
+* troubleshooting, match() function: String Functions. (line 285)
+* troubleshooting, patsplit() function: String Functions. (line 308)
* troubleshooting, print statement, omitting commas: Print Examples.
(line 31)
* troubleshooting, printing: Redirection. (line 118)
@@ -26770,7 +26802,7 @@ Index
* troubleshooting, regexp constants vs. string constants: Computed Regexps.
(line 38)
* troubleshooting, string concatenation: Concatenation. (line 27)
-* troubleshooting, substr() function: String Functions. (line 481)
+* troubleshooting, substr() function: String Functions. (line 496)
* troubleshooting, system() function: I/O Functions. (line 85)
* troubleshooting, typographical errors, global variables: Options.
(line 94)
@@ -27122,225 +27154,225 @@ Node: Built-in Variables383628
Node: User-modified384723
Ref: User-modified-Footnote-1392749
Node: Auto-set392811
-Ref: Auto-set-Footnote-1403553
-Node: ARGC and ARGV403758
-Node: Arrays407609
-Node: Array Basics409180
-Node: Array Intro409891
-Node: Reference to Elements414209
-Node: Assigning Elements416479
-Node: Array Example416970
-Node: Scanning an Array418702
-Node: Controlling Scanning421078
-Node: Delete424416
-Ref: Delete-Footnote-1426851
-Node: Numeric Array Subscripts426908
-Node: Uninitialized Subscripts429091
-Node: Multi-dimensional430719
-Node: Multi-scanning433810
-Node: Array Sorting435394
-Ref: Array Sorting-Footnote-1438488
-Node: Arrays of Arrays438682
-Node: Functions443255
-Node: Built-in444077
-Node: Calling Built-in445155
-Node: Numeric Functions447143
-Ref: Numeric Functions-Footnote-1450908
-Ref: Numeric Functions-Footnote-2451265
-Ref: Numeric Functions-Footnote-3451313
-Node: String Functions451582
-Ref: String Functions-Footnote-1474084
-Ref: String Functions-Footnote-2474213
-Ref: String Functions-Footnote-3474461
-Node: Gory Details474548
-Ref: table-sub-escapes476227
-Ref: table-posix-sub477541
-Ref: table-gensub-escapes478454
-Node: I/O Functions479625
-Ref: I/O Functions-Footnote-1486280
-Node: Time Functions486427
-Ref: Time Functions-Footnote-1497319
-Ref: Time Functions-Footnote-2497387
-Ref: Time Functions-Footnote-3497545
-Ref: Time Functions-Footnote-4497656
-Ref: Time Functions-Footnote-5497768
-Ref: Time Functions-Footnote-6497995
-Node: Bitwise Functions498261
-Ref: table-bitwise-ops498819
-Ref: Bitwise Functions-Footnote-1502979
-Node: Type Functions503163
-Node: I18N Functions503633
-Node: User-defined505260
-Node: Definition Syntax506064
-Ref: Definition Syntax-Footnote-1510974
-Node: Function Example511043
-Node: Function Caveats513637
-Node: Calling A Function514058
-Node: Variable Scope515173
-Node: Pass By Value/Reference517148
-Node: Return Statement520588
-Node: Dynamic Typing523569
-Node: Indirect Calls524304
-Node: Internationalization533989
-Node: I18N and L10N535415
-Node: Explaining gettext536101
-Ref: Explaining gettext-Footnote-1541167
-Ref: Explaining gettext-Footnote-2541351
-Node: Programmer i18n541516
-Node: Translator i18n545716
-Node: String Extraction546509
-Ref: String Extraction-Footnote-1547470
-Node: Printf Ordering547556
-Ref: Printf Ordering-Footnote-1550340
-Node: I18N Portability550404
-Ref: I18N Portability-Footnote-1552853
-Node: I18N Example552916
-Ref: I18N Example-Footnote-1555551
-Node: Gawk I18N555623
-Node: Advanced Features556240
-Node: Nondecimal Data557559
-Node: Two-way I/O559140
-Ref: Two-way I/O-Footnote-1564574
-Node: TCP/IP Networking564644
-Node: Profiling567488
-Node: Library Functions574962
-Ref: Library Functions-Footnote-1577969
-Node: Library Names578140
-Ref: Library Names-Footnote-1581611
-Ref: Library Names-Footnote-2581831
-Node: General Functions581917
-Node: Strtonum Function582870
-Node: Assert Function585800
-Node: Round Function589126
-Node: Cliff Random Function590669
-Node: Ordinal Functions591685
-Ref: Ordinal Functions-Footnote-1594755
-Ref: Ordinal Functions-Footnote-2595007
-Node: Join Function595216
-Ref: Join Function-Footnote-1596987
-Node: Gettimeofday Function597187
-Node: Data File Management600902
-Node: Filetrans Function601534
-Node: Rewind Function605673
-Node: File Checking607060
-Node: Empty Files608154
-Node: Ignoring Assigns610384
-Node: Getopt Function611937
-Ref: Getopt Function-Footnote-1623241
-Node: Passwd Functions623444
-Ref: Passwd Functions-Footnote-1632419
-Node: Group Functions632507
-Node: Walking Arrays640591
-Node: Sample Programs642160
-Node: Running Examples642825
-Node: Clones643553
-Node: Cut Program644777
-Node: Egrep Program654622
-Ref: Egrep Program-Footnote-1662395
-Node: Id Program662505
-Node: Split Program666121
-Ref: Split Program-Footnote-1669640
-Node: Tee Program669768
-Node: Uniq Program672571
-Node: Wc Program680000
-Ref: Wc Program-Footnote-1684266
-Ref: Wc Program-Footnote-2684466
-Node: Miscellaneous Programs684558
-Node: Dupword Program685746
-Node: Alarm Program687777
-Node: Translate Program692526
-Ref: Translate Program-Footnote-1696913
-Ref: Translate Program-Footnote-2697141
-Node: Labels Program697275
-Ref: Labels Program-Footnote-1700646
-Node: Word Sorting700730
-Node: History Sorting704614
-Node: Extract Program706453
-Ref: Extract Program-Footnote-1713936
-Node: Simple Sed714064
-Node: Igawk Program717126
-Ref: Igawk Program-Footnote-1732159
-Ref: Igawk Program-Footnote-2732360
-Node: Anagram Program732498
-Node: Signature Program735566
-Node: Debugger736666
-Node: Debugging737577
-Node: Debugging Concepts737990
-Node: Debugging Terms739846
-Node: Awk Debugging742468
-Node: Sample dgawk session743360
-Node: dgawk invocation743852
-Node: Finding The Bug745034
-Node: List of Debugger Commands751520
-Node: Breakpoint Control752831
-Node: Dgawk Execution Control756467
-Node: Viewing And Changing Data759818
-Node: Dgawk Stack763155
-Node: Dgawk Info764615
-Node: Miscellaneous Dgawk Commands768563
-Node: Readline Support773991
-Node: Dgawk Limitations774829
-Node: Language History777018
-Node: V7/SVR3.1778456
-Node: SVR4780777
-Node: POSIX782219
-Node: BTL783227
-Node: POSIX/GNU783961
-Node: Common Extensions789062
-Node: Contributors790163
-Node: Installation794302
-Node: Gawk Distribution795196
-Node: Getting795680
-Node: Extracting796506
-Node: Distribution contents798198
-Node: Unix Installation803420
-Node: Quick Installation804037
-Node: Additional Configuration Options805999
-Node: Configuration Philosophy807476
-Node: Non-Unix Installation809818
-Node: PC Installation810276
-Node: PC Binary Installation811575
-Node: PC Compiling813423
-Node: PC Testing816367
-Node: PC Using817543
-Node: Cygwin821728
-Node: MSYS822728
-Node: VMS Installation823242
-Node: VMS Compilation823845
-Ref: VMS Compilation-Footnote-1824852
-Node: VMS Installation Details824910
-Node: VMS Running826545
-Node: VMS Old Gawk828152
-Node: Bugs828626
-Node: Other Versions832536
-Node: Notes837815
-Node: Compatibility Mode838507
-Node: Additions839290
-Node: Accessing The Source840102
-Node: Adding Code841527
-Node: New Ports847494
-Node: Dynamic Extensions851607
-Node: Internals852983
-Node: Plugin License862086
-Node: Sample Library862720
-Node: Internal File Description863406
-Node: Internal File Ops867121
-Ref: Internal File Ops-Footnote-1871902
-Node: Using Internal File Ops872042
-Node: Future Extensions874419
-Node: Basic Concepts876923
-Node: Basic High Level877680
-Ref: Basic High Level-Footnote-1881715
-Node: Basic Data Typing881900
-Node: Floating Point Issues886425
-Node: String Conversion Precision887508
-Ref: String Conversion Precision-Footnote-1889202
-Node: Unexpected Results889311
-Node: POSIX Floating Point Problems891137
-Ref: POSIX Floating Point Problems-Footnote-1894839
-Node: Glossary894877
-Node: Copying919020
-Node: GNU Free Documentation License956577
-Node: Index981714
+Ref: Auto-set-Footnote-1403524
+Node: ARGC and ARGV403729
+Node: Arrays407580
+Node: Array Basics409151
+Node: Array Intro409862
+Node: Reference to Elements414180
+Node: Assigning Elements416450
+Node: Array Example416941
+Node: Scanning an Array418673
+Node: Controlling Scanning421049
+Node: Delete424695
+Ref: Delete-Footnote-1427130
+Node: Numeric Array Subscripts427187
+Node: Uninitialized Subscripts429370
+Node: Multi-dimensional430998
+Node: Multi-scanning434089
+Node: Array Sorting435673
+Ref: Array Sorting-Footnote-1439452
+Node: Arrays of Arrays439646
+Node: Functions444219
+Node: Built-in445041
+Node: Calling Built-in446119
+Node: Numeric Functions448107
+Ref: Numeric Functions-Footnote-1451872
+Ref: Numeric Functions-Footnote-2452229
+Ref: Numeric Functions-Footnote-3452277
+Node: String Functions452546
+Ref: String Functions-Footnote-1475818
+Ref: String Functions-Footnote-2475947
+Ref: String Functions-Footnote-3476195
+Node: Gory Details476282
+Ref: table-sub-escapes477961
+Ref: table-posix-sub479275
+Ref: table-gensub-escapes480188
+Node: I/O Functions481359
+Ref: I/O Functions-Footnote-1488014
+Node: Time Functions488161
+Ref: Time Functions-Footnote-1499053
+Ref: Time Functions-Footnote-2499121
+Ref: Time Functions-Footnote-3499279
+Ref: Time Functions-Footnote-4499390
+Ref: Time Functions-Footnote-5499502
+Ref: Time Functions-Footnote-6499729
+Node: Bitwise Functions499995
+Ref: table-bitwise-ops500553
+Ref: Bitwise Functions-Footnote-1504713
+Node: Type Functions504897
+Node: I18N Functions505367
+Node: User-defined506994
+Node: Definition Syntax507798
+Ref: Definition Syntax-Footnote-1512708
+Node: Function Example512777
+Node: Function Caveats515371
+Node: Calling A Function515792
+Node: Variable Scope516907
+Node: Pass By Value/Reference518882
+Node: Return Statement522322
+Node: Dynamic Typing525303
+Node: Indirect Calls526038
+Node: Internationalization535723
+Node: I18N and L10N537149
+Node: Explaining gettext537835
+Ref: Explaining gettext-Footnote-1542901
+Ref: Explaining gettext-Footnote-2543085
+Node: Programmer i18n543250
+Node: Translator i18n547450
+Node: String Extraction548243
+Ref: String Extraction-Footnote-1549204
+Node: Printf Ordering549290
+Ref: Printf Ordering-Footnote-1552074
+Node: I18N Portability552138
+Ref: I18N Portability-Footnote-1554587
+Node: I18N Example554650
+Ref: I18N Example-Footnote-1557285
+Node: Gawk I18N557357
+Node: Advanced Features557974
+Node: Nondecimal Data559293
+Node: Two-way I/O560874
+Ref: Two-way I/O-Footnote-1566308
+Node: TCP/IP Networking566378
+Node: Profiling569222
+Node: Library Functions576696
+Ref: Library Functions-Footnote-1579703
+Node: Library Names579874
+Ref: Library Names-Footnote-1583345
+Ref: Library Names-Footnote-2583565
+Node: General Functions583651
+Node: Strtonum Function584604
+Node: Assert Function587534
+Node: Round Function590860
+Node: Cliff Random Function592403
+Node: Ordinal Functions593419
+Ref: Ordinal Functions-Footnote-1596489
+Ref: Ordinal Functions-Footnote-2596741
+Node: Join Function596950
+Ref: Join Function-Footnote-1598721
+Node: Gettimeofday Function598921
+Node: Data File Management602636
+Node: Filetrans Function603268
+Node: Rewind Function607407
+Node: File Checking608794
+Node: Empty Files609888
+Node: Ignoring Assigns612118
+Node: Getopt Function613671
+Ref: Getopt Function-Footnote-1624975
+Node: Passwd Functions625178
+Ref: Passwd Functions-Footnote-1634153
+Node: Group Functions634241
+Node: Walking Arrays642325
+Node: Sample Programs643894
+Node: Running Examples644559
+Node: Clones645287
+Node: Cut Program646511
+Node: Egrep Program656356
+Ref: Egrep Program-Footnote-1664129
+Node: Id Program664239
+Node: Split Program667855
+Ref: Split Program-Footnote-1671374
+Node: Tee Program671502
+Node: Uniq Program674305
+Node: Wc Program681734
+Ref: Wc Program-Footnote-1686000
+Ref: Wc Program-Footnote-2686200
+Node: Miscellaneous Programs686292
+Node: Dupword Program687480
+Node: Alarm Program689511
+Node: Translate Program694260
+Ref: Translate Program-Footnote-1698647
+Ref: Translate Program-Footnote-2698875
+Node: Labels Program699009
+Ref: Labels Program-Footnote-1702380
+Node: Word Sorting702464
+Node: History Sorting706348
+Node: Extract Program708187
+Ref: Extract Program-Footnote-1715670
+Node: Simple Sed715798
+Node: Igawk Program718860
+Ref: Igawk Program-Footnote-1733893
+Ref: Igawk Program-Footnote-2734094
+Node: Anagram Program734232
+Node: Signature Program737300
+Node: Debugger738400
+Node: Debugging739311
+Node: Debugging Concepts739724
+Node: Debugging Terms741580
+Node: Awk Debugging744202
+Node: Sample dgawk session745094
+Node: dgawk invocation745586
+Node: Finding The Bug746768
+Node: List of Debugger Commands753254
+Node: Breakpoint Control754565
+Node: Dgawk Execution Control758201
+Node: Viewing And Changing Data761552
+Node: Dgawk Stack764889
+Node: Dgawk Info766349
+Node: Miscellaneous Dgawk Commands770297
+Node: Readline Support775725
+Node: Dgawk Limitations776563
+Node: Language History778752
+Node: V7/SVR3.1780190
+Node: SVR4782511
+Node: POSIX783953
+Node: BTL784961
+Node: POSIX/GNU785695
+Node: Common Extensions790796
+Node: Contributors791897
+Node: Installation796036
+Node: Gawk Distribution796930
+Node: Getting797414
+Node: Extracting798240
+Node: Distribution contents799932
+Node: Unix Installation805154
+Node: Quick Installation805771
+Node: Additional Configuration Options807733
+Node: Configuration Philosophy809210
+Node: Non-Unix Installation811552
+Node: PC Installation812010
+Node: PC Binary Installation813309
+Node: PC Compiling815157
+Node: PC Testing818101
+Node: PC Using819277
+Node: Cygwin823462
+Node: MSYS824462
+Node: VMS Installation824976
+Node: VMS Compilation825579
+Ref: VMS Compilation-Footnote-1826586
+Node: VMS Installation Details826644
+Node: VMS Running828279
+Node: VMS Old Gawk829886
+Node: Bugs830360
+Node: Other Versions834270
+Node: Notes839549
+Node: Compatibility Mode840241
+Node: Additions841024
+Node: Accessing The Source841836
+Node: Adding Code843261
+Node: New Ports849228
+Node: Dynamic Extensions853341
+Node: Internals854717
+Node: Plugin License863820
+Node: Sample Library864454
+Node: Internal File Description865140
+Node: Internal File Ops868855
+Ref: Internal File Ops-Footnote-1873636
+Node: Using Internal File Ops873776
+Node: Future Extensions876153
+Node: Basic Concepts878657
+Node: Basic High Level879414
+Ref: Basic High Level-Footnote-1883449
+Node: Basic Data Typing883634
+Node: Floating Point Issues888159
+Node: String Conversion Precision889242
+Ref: String Conversion Precision-Footnote-1890936
+Node: Unexpected Results891045
+Node: POSIX Floating Point Problems892871
+Ref: POSIX Floating Point Problems-Footnote-1896573
+Node: Glossary896611
+Node: Copying920754
+Node: GNU Free Documentation License958311
+Node: Index983448

End Tag Table