blob: 330974fed40700d44748dd7aba73aa57dfbcb6f1 [file]
\initial {!}
\entry {\code {!} (exclamation point), \code {!} operator}{114, 117, 121, 241}
\entry {\code {!} (exclamation point), \code {!=} operator}{111, 118}
\entry {\code {!} (exclamation point), \code {!~} operator}{41, 50, 51, 98, 111, 113, 118, 120}
\initial {"}
\entry {\code {"} (double quote) in shell commands}{14}
\entry {\code {"} (double quote), in regexp constants}{51}
\entry {\code {"} (double quote), in shell commands}{17}
\initial {#}
\entry {\code {#} (number sign), \code {#!} (executable scripts)}{15}
\entry {\code {#} (number sign), commenting}{16}
\initial {$}
\entry {\code {$} (dollar sign), \code {$} field operator}{57, 117}
\entry {\code {$} (dollar sign), incrementing fields and arrays}{109}
\entry {\code {$} (dollar sign), regexp operator}{44}
\initial {%}
\entry {\code {%} (percent sign), \code {%} operator}{117}
\entry {\code {%} (percent sign), \code {%=} operator}{107, 118}
\initial {&}
\entry {\code {&} (ampersand), \code {&&} operator}{114, 118}
\entry {\code {&} (ampersand), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}{170}
\initial {'}
\entry {\code {'} (single quote)}{13}
\entry {\code {'} (single quote) in \command {gawk} command lines}{15}
\entry {\code {'} (single quote), in shell commands}{17}
\entry {\code {'} (single quote), vs.\: apostrophe}{16}
\entry {\code {'} (single quote), with double quotes}{17}
\initial {(}
\entry {\code {()} (parentheses), in a profile}{291}
\entry {\code {()} (parentheses), regexp operator}{45}
\initial {*}
\entry {\code {*} (asterisk), \code {*} operator, as multiplication operator}{117}
\entry {\code {*} (asterisk), \code {*} operator, as regexp operator}{45}
\entry {\code {*} (asterisk), \code {*} operator, null strings\comma {} matching}{173}
\entry {\code {*} (asterisk), \code {**} operator}{104, 117}
\entry {\code {*} (asterisk), \code {**=} operator}{107, 118}
\entry {\code {*} (asterisk), \code {*=} operator}{107, 118}
\initial {+}
\entry {\code {+} (plus sign), \code {+} operator}{117, 118}
\entry {\code {+} (plus sign), \code {++} operator}{108, 109, 117}
\entry {\code {+} (plus sign), \code {+=} operator}{107, 118}
\entry {\code {+} (plus sign), regexp operator}{45}
\initial {,}
\entry {\code {,} (comma), in range patterns}{121}
\initial {-}
\entry {\code {-} (hyphen), \code {-} operator}{117, 118}
\entry {\code {-} (hyphen), \code {--} operator}{109, 117}
\entry {\code {-} (hyphen), \code {-=} operator}{107, 118}
\entry {\code {-} (hyphen), filenames beginning with}{28}
\entry {\code {-} (hyphen), in bracket expressions}{47}
\entry {\option {--assign} option}{28}
\entry {\option {--bignum} option}{30}
\entry {\option {--characters-as-bytes} option}{28}
\entry {\option {--copyright} option}{28}
\entry {\option {--debug} option}{29}
\entry {\option {--disable-extensions} configuration option}{411}
\entry {\option {--disable-lint} configuration option}{411}
\entry {\option {--disable-nls} configuration option}{412}
\entry {\option {--dump-variables} option}{29}
\entry {\option {--dump-variables} option, using for library functions}{202}
\entry {\option {--exec} option}{29}
\entry {\option {--field-separator} option}{27}
\entry {\option {--file} option}{27}
\entry {\option {--gen-pot} option}{29, 297}
\entry {\option {--help} option}{30}
\entry {\option {--include} option}{30}
\entry {\option {--lint} option}{27, 30}
\entry {\option {--lint-old} option}{32}
\entry {\option {--load} option}{30}
\entry {\option {--non-decimal-data} option}{30, 279}
\entry {\option {--non-decimal-data} option, \code {strtonum()} function and}{279}
\entry {\option {--optimize} option}{31}
\entry {\option {--posix} option}{31}
\entry {\option {--posix} option, \code {--traditional} option and}{31}
\entry {\option {--pretty-print} option}{31}
\entry {\option {--profile} option}{31, 289}
\entry {\option {--re-interval} option}{32}
\entry {\option {--sandbox} option}{32}
\entry {\option {--sandbox} option, disabling \code {system()} function}{174}
\entry {\option {--sandbox} option, input redirection with \code {getline}}{71}
\entry {\option {--sandbox} option, output redirection with \code {print}, \code {printf}}{90}
\entry {\option {--source} option}{29, 32}
\entry {\option {--traditional} option}{28}
\entry {\option {--traditional} option, \code {--posix} option and}{31}
\entry {\option {--use-lc-numeric} option}{31}
\entry {\option {--version} option}{32}
\entry {\option {--with-whiny-user-strftime} configuration option}{412}
\entry {\option {-b} option}{28}
\entry {\option {-c} option}{28}
\entry {\option {-C} option}{28}
\entry {\option {-d} option}{29}
\entry {\option {-D} option}{29}
\entry {\option {-e} option}{29}
\entry {\option {-E} option}{29}
\entry {\option {-f} option}{14, 27}
\entry {\option {-F} option}{27}
\entry {\option {-F} option, \option {-Ft} sets \code {FS} to TAB}{32}
\entry {\option {-F} option, command line}{63}
\entry {\option {-f} option, multiple uses}{32}
\entry {\option {-g} option}{29}
\entry {\option {-h} option}{30}
\entry {\option {-i} option}{30}
\entry {\option {-l} option}{30}
\entry {\option {-L} option}{32}
\entry {\option {-M} option}{30}
\entry {\option {-n} option}{30}
\entry {\option {-N} option}{31}
\entry {\option {-o} option}{31}
\entry {\option {-O} option}{31}
\entry {\option {-p} option}{31}
\entry {\option {-P} option}{31}
\entry {\option {-r} option}{32}
\entry {\option {-S} option}{32}
\entry {\option {-v} option}{28, 100}
\entry {\option {-V} option}{32}
\entry {\option {-W} option}{28}
\initial {.}
\entry {\code {.} (period), regexp operator}{45}
\entry {\code {.gmo} files}{294}
\entry {\code {.gmo} files, converting from \code {.po}}{300}
\entry {\code {.gmo} files, specifying directory of}{294, 295}
\entry {\code {.po} files}{293, 297}
\entry {\code {.po} files, converting to \code {.gmo}}{300}
\entry {\code {.pot} files}{293}
\initial {/}
\entry {\code {/} (forward slash) to enclose regular expressions}{41}
\entry {\code {/} (forward slash), \code {/} operator}{117}
\entry {\code {/} (forward slash), \code {/=} operator}{107, 118}
\entry {\code {/} (forward slash), \code {/=} operator, vs. \code {/=\dots {}/} regexp constant}{108}
\entry {\code {/} (forward slash), patterns and}{120}
\entry {\code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
\entry {\code {/dev/\dots {}} special files}{93}
\entry {\code {/dev/fd/\var {N}} special files (\command {gawk})}{93}
\entry {\code {/inet/\dots {}} special files (\command {gawk})}{287}
\entry {\code {/inet4/\dots {}} special files (\command {gawk})}{287}
\entry {\code {/inet6/\dots {}} special files (\command {gawk})}{287}
\initial {;}
\entry {\code {;} (semicolon), \code {AWKPATH} variable and}{415}
\entry {\code {;} (semicolon), separating statements in actions}{24, 125, 126}
\initial {<}
\entry {\code {<} (left angle bracket), \code {<} operator}{111, 118}
\entry {\code {<} (left angle bracket), \code {<} operator (I/O)}{73}
\entry {\code {<} (left angle bracket), \code {<=} operator}{111, 118}
\initial {=}
\entry {\code {=} (equals sign), \code {=} operator}{106}
\entry {\code {=} (equals sign), \code {==} operator}{111, 118}
\initial {>}
\entry {\code {>} (right angle bracket), \code {>} operator}{111, 118}
\entry {\code {>} (right angle bracket), \code {>} operator (I/O)}{90}
\entry {\code {>} (right angle bracket), \code {>=} operator}{111, 118}
\entry {\code {>} (right angle bracket), \code {>>} operator (I/O)}{90, 118}
\initial {?}
\entry {\code {?} (question mark), \code {?:} operator}{118}
\entry {\code {?} (question mark), regexp operator}{46, 49}
\initial {[}
\entry {\code {[]} (square brackets), regexp operator}{45}
\initial {^}
\entry {\code {^} (caret), \code {^} operator}{117}
\entry {\code {^} (caret), \code {^=} operator}{107, 118}
\entry {\code {^} (caret), in bracket expressions}{47}
\entry {\code {^} (caret), in \code {FS}}{62}
\entry {\code {^} (caret), regexp operator}{44, 49}
\initial {_}
\entry {\code {_} (underscore), C macro}{294}
\entry {\code {_} (underscore), in names of private variables}{202}
\entry {\code {_} (underscore), translatable string}{296}
\entry {\code {_gr_init()} user-defined function}{227}
\entry {\code {_ord_init()} user-defined function}{207}
\entry {\code {_pw_init()} user-defined function}{223}
\initial {{\tt \indexbackslash }}
\entry {\code {{\tt \backslashcurfont }} (backslash)}{16}
\entry {\code {{\tt \backslashcurfont }} (backslash) in shell commands}{14}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }"} escape sequence}{43}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }'} operator (\command {gawk})}{49}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }/} escape sequence}{43}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }<} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }>} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }`} operator (\command {gawk})}{49}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }a} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }b} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }B} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }f} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }n} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }}\var {nnn} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }r} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }s} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }S} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }t} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }v} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }w} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }W} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }x} escape sequence}{42}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }y} operator (\command {gawk})}{48}
\entry {\code {{\tt \backslashcurfont }} (backslash), as field separator}{63}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and}{23, 242}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, comments and}{24}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in \command {csh}}{23}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}{170}
\entry {\code {{\tt \backslashcurfont }} (backslash), in bracket expressions}{47}
\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences}{42, 43}
\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences, POSIX and}{44}
\entry {\code {{\tt \backslashcurfont }} (backslash), in regexp constants}{51}
\entry {\code {{\tt \backslashcurfont }} (backslash), in shell commands}{17}
\entry {\code {{\tt \backslashcurfont }} (backslash), regexp operator}{44}
\initial {|}
\entry {\code {|} (vertical bar)}{45}
\entry {\code {|} (vertical bar), \code {|} operator (I/O)}{74, 90, 118}
\entry {\code {|} (vertical bar), \code {|&} operator (I/O)}{75, 91, 118, 286}
\entry {\code {|} (vertical bar), \code {|&} operator (I/O), pipes\comma {} closing}{96}
\entry {\code {|} (vertical bar), \code {||} operator}{114, 118}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces)}{291}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), actions and}{125}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), statements, grouping}{126}
\initial {~}
\entry {\code {~} (tilde), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 120}
\initial {A}
\entry {accessing fields}{56}
\entry {accessing global variables from extensions}{352}
\entry {account information}{221, 225}
\entry {actions}{125}
\entry {actions, control statements in}{126}
\entry {actions, default}{20}
\entry {actions, empty}{20}
\entry {Ada programming language}{439}
\entry {adding, features to \command {gawk}}{426}
\entry {adding, fields}{59}
\entry {advanced features, fixed-width data}{66}
\entry {advanced features, \command {gawk}}{279}
\entry {advanced features, network programming}{287}
\entry {advanced features, nondecimal input data}{279}
\entry {advanced features, processes\comma {} communicating with}{286}
\entry {advanced features, specifying field content}{67}
\entry {Aho, Alfred}{4, 403}
\entry {alarm clock example program}{254}
\entry {\code {alarm.awk} program}{254}
\entry {algorithms}{436}
\entry {allocating memory for extensions}{342}
\entry {Alpha (DEC)}{8}
\entry {amazing \command {awk} assembler (\command {aaa})}{439}
\entry {amazingly workable formatter (\command {awf})}{439}
\entry {ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
\entry {ampersand (\code {&}), \code {&&} operator}{114, 118}
\entry {ampersand (\code {&}), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}{170}
\entry {\code {anagram.awk} program}{274}
\entry {anagrams, finding}{274}
\entry {AND bitwise operation}{181}
\entry {and Boolean-logic operator}{113}
\entry {\code {and()} function (\command {gawk})}{181}
\entry {ANSI}{439}
\entry {API informational variables}{365}
\entry {API version}{365}
\entry {arbitrary precision}{319}
\entry {arbitrary precision integers}{332}
\entry {archeologists}{420}
\entry {arctangent}{160}
\entry {\code {ARGC}/\code {ARGV} variables}{137}
\entry {\code {ARGC}/\code {ARGV} variables, command-line arguments}{33}
\entry {\code {ARGC}/\code {ARGV} variables, how to use}{143}
\entry {\code {ARGC}/\code {ARGV} variables, portability and}{16}
\entry {\code {ARGIND} variable}{138}
\entry {\code {ARGIND} variable, command-line arguments}{33}
\entry {arguments, command-line}{33, 137, 143}
\entry {arguments, command-line, invoking \command {awk}}{27}
\entry {arguments, in function calls}{116}
\entry {arguments, processing}{216}
\entry {\code {ARGV} array, indexing into}{33}
\entry {arithmetic operators}{103}
\entry {array manipulation in extensions}{356}
\entry {array members}{146}
\entry {array scanning order, controlling}{149}
\entry {array, number of elements}{164}
\entry {arrays}{145}
\entry {arrays of arrays}{156}
\entry {arrays, an example of using}{147}
\entry {arrays, and \code {IGNORECASE} variable}{146}
\entry {arrays, as parameters to functions}{190}
\entry {arrays, associative}{146}
\entry {arrays, associative, library functions and}{202}
\entry {arrays, deleting entire contents}{152}
\entry {arrays, elements that don't exist}{147}
\entry {arrays, elements, assigning values}{147}
\entry {arrays, elements, deleting}{151}
\entry {arrays, elements, order of access by \code {in} operator}{149}
\entry {arrays, elements, retrieving number of}{161}
\entry {arrays, \code {for} statement and}{148}
\entry {arrays, indexing}{146}
\entry {arrays, merging into strings}{209}
\entry {arrays, multidimensional}{154}
\entry {arrays, multidimensional, scanning}{155}
\entry {arrays, names of, and names of functions/variables}{145}
\entry {arrays, numeric subscripts}{153}
\entry {arrays, referencing elements}{146}
\entry {arrays, scanning}{148}
\entry {arrays, sorting}{284}
\entry {arrays, sorting, and \code {IGNORECASE} variable}{285}
\entry {arrays, sparse}{146}
\entry {arrays, subscripts, uninitialized variables as}{153}
\entry {arrays, unassigned elements}{147}
\entry {artificial intelligence\comma {} \command {gawk} and}{408}
\entry {ASCII}{208, 440}
\entry {\code {asort()} function (\command {gawk})}{161, 284}
\entry {\code {asort()} function (\command {gawk}), arrays\comma {} sorting}{284}
\entry {\code {asorti()} function (\command {gawk})}{161, 284}
\entry {\code {asorti()} function (\command {gawk}), arrays\comma {} sorting}{284}
\entry {\code {assert()} function (C library)}{204}
\entry {\code {assert()} user-defined function}{205}
\entry {assertions}{204}
\entry {assign values to variables, in debugger}{312}
\entry {assignment operators}{106}
\entry {assignment operators, evaluation order}{107}
\entry {assignment operators, lvalues/rvalues}{106}
\entry {assignments as filenames}{216}
\entry {associative arrays}{146}
\entry {asterisk (\code {*}), \code {*} operator, as multiplication operator}{117}
\entry {asterisk (\code {*}), \code {*} operator, as regexp operator}{45}
\entry {asterisk (\code {*}), \code {*} operator, null strings\comma {} matching}{173}
\entry {asterisk (\code {*}), \code {**} operator}{104, 117}
\entry {asterisk (\code {*}), \code {**=} operator}{107, 118}
\entry {asterisk (\code {*}), \code {*=} operator}{107, 118}
\entry {\code {atan2()} function}{160}
\entry {automatic displays, in debugger}{313}
\entry {\command {awf} (amazingly workable formatter) program}{439}
\entry {\command {awk} debugging, enabling}{29}
\entry {\command {awk} language, POSIX version}{108}
\entry {\command {awk} profiling, enabling}{31}
\entry {\command {awk} programs}{13, 15, 21}
\entry {\command {awk} programs, complex}{25}
\entry {\command {awk} programs, documenting}{16, 202}
\entry {\command {awk} programs, examples of}{233}
\entry {\command {awk} programs, execution of}{132}
\entry {\command {awk} programs, internationalizing}{183, 295}
\entry {\command {awk} programs, lengthy}{14}
\entry {\command {awk} programs, lengthy, assertions}{204}
\entry {\command {awk} programs, location of}{27, 29, 30}
\entry {\command {awk} programs, one-line examples}{20}
\entry {\command {awk} programs, profiling}{289}
\entry {\command {awk} programs, running}{13, 14}
\entry {\command {awk} programs, running, from shell scripts}{13}
\entry {\command {awk} programs, running, without input files}{14}
\entry {\command {awk} programs, shell variables in}{124}
\entry {\command {awk}, function of}{13}
\entry {\command {awk}, \command {gawk} and}{3, 5}
\entry {\command {awk}, history of}{4}
\entry {\command {awk}, implementation issues, pipes}{92}
\entry {\command {awk}, implementations}{421}
\entry {\command {awk}, implementations, limits}{76}
\entry {\command {awk}, invoking}{27}
\entry {\command {awk}, new vs.\: old}{4}
\entry {\command {awk}, new vs.\: old, \code {OFMT} variable}{102}
\entry {\command {awk}, POSIX and}{3}
\entry {\command {awk}, POSIX and, See Also POSIX \command {awk}}{3}
\entry {\command {awk}, regexp constants and}{113}
\entry {\command {awk}, See Also \command {gawk}}{3}
\entry {\command {awk}, terms describing}{5}
\entry {\command {awk}, uses for}{3, 13, 24}
\entry {\command {awk}, versions of}{4, 391}
\entry {\command {awk}, versions of, changes between SVR3.1 and SVR4}{392}
\entry {\command {awk}, versions of, changes between SVR4 and POSIX \command {awk}}{392}
\entry {\command {awk}, versions of, changes between V7 and SVR3.1}{391}
\entry {\command {awk}, versions of, See Also Brian Kernighan's \command {awk}}{393, 421}
\entry {\command {awka} compiler for \command {awk}}{422}
\entry {\env {AWKLIBPATH} environment variable}{35}
\entry {\env {AWKPATH} environment variable}{34, 415}
\entry {\code {awkprof.out} file}{289}
\entry {\command {awksed.awk} program}{267}
\entry {\file {awkvars.out} file}{29}
\initial {B}
\entry {\code {b} debugger command (alias for \code {break})}{308}
\entry {backslash (\code {{\tt \backslashcurfont }})}{16}
\entry {backslash (\code {{\tt \backslashcurfont }}) in shell commands}{14}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }"} escape sequence}{43}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }'} operator (\command {gawk})}{49}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }/} escape sequence}{43}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }<} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }>} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }`} operator (\command {gawk})}{49}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }a} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }b} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }B} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }f} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }n} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }}\var {nnn} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }r} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }s} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }S} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }t} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }v} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }w} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }W} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }x} escape sequence}{42}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }y} operator (\command {gawk})}{48}
\entry {backslash (\code {{\tt \backslashcurfont }}), as field separator}{63}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and}{23, 242}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, comments and}{24}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in \command {csh}}{23}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {gsub()}/\code {gensub()}/\code {sub()} functions and}{170}
\entry {backslash (\code {{\tt \backslashcurfont }}), in bracket expressions}{47}
\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences}{42, 43}
\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences, POSIX and}{44}
\entry {backslash (\code {{\tt \backslashcurfont }}), in regexp constants}{51}
\entry {backslash (\code {{\tt \backslashcurfont }}), in shell commands}{17}
\entry {backslash (\code {{\tt \backslashcurfont }}), regexp operator}{44}
\entry {\code {backtrace} debugger command}{312}
\entry {Beebe, Nelson H.F.\:}{10, 422}
\entry {\code {BEGIN} pattern}{61, 122}
\entry {\code {BEGIN} pattern, and profiling}{289}
\entry {\code {BEGIN} pattern, \code {assert()} user-defined function and}{205}
\entry {\code {BEGIN} pattern, Boolean patterns and}{121}
\entry {\code {BEGIN} pattern, \code {exit} statement and}{134}
\entry {\code {BEGIN} pattern, \code {getline} and}{76}
\entry {\code {BEGIN} pattern, headings\comma {} adding}{82}
\entry {\code {BEGIN} pattern, \code {next}/\code {nextfile} statements and}{123, 133}
\entry {\code {BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning values to}{83}
\entry {\code {BEGIN} pattern, operators and}{122}
\entry {\code {BEGIN} pattern, \code {print} statement and}{123}
\entry {\code {BEGIN} pattern, \code {pwcat} program}{224}
\entry {\code {BEGIN} pattern, running \command {awk} programs and}{234}
\entry {\code {BEGIN} pattern, \code {TEXTDOMAIN} variable and}{296}
\entry {\code {BEGINFILE} pattern}{123}
\entry {\code {BEGINFILE} pattern, Boolean patterns and}{121}
\entry {\code {beginfile()} user-defined function}{213}
\entry {Bentley, Jon}{441}
\entry {Benzinger, Michael}{404}
\entry {Berry, Karl}{10, 403}
\entry {binary input/output}{135}
\entry {\code {bindtextdomain()} function (C library)}{294}
\entry {\code {bindtextdomain()} function (\command {gawk})}{183, 295}
\entry {\code {bindtextdomain()} function (\command {gawk}), portability and}{299}
\entry {\code {BINMODE} variable}{135, 415}
\entry {bit-manipulation functions}{181}
\entry {\code {bits2str()} user-defined function}{182}
\entry {bitwise AND}{181}
\entry {bitwise complement}{181}
\entry {bitwise OR}{181}
\entry {bitwise XOR}{182}
\entry {bitwise, complement}{181}
\entry {bitwise, operations}{181}
\entry {bitwise, shift}{181}
\entry {body, in actions}{126}
\entry {body, in loops}{127}
\entry {Boolean expressions}{113}
\entry {Boolean expressions, as patterns}{120}
\entry {Boolean operators, See Boolean expressions}{113}
\entry {Bourne shell, quoting rules for}{17}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}})}{291}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), actions and}{125}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), statements, grouping}{126}
\entry {bracket expressions}{45, 47}
\entry {bracket expressions, character classes}{47}
\entry {bracket expressions, collating elements}{48}
\entry {bracket expressions, collating symbols}{48}
\entry {bracket expressions, complemented}{45}
\entry {bracket expressions, equivalence classes}{48}
\entry {bracket expressions, non-ASCII}{48}
\entry {bracket expressions, range expressions}{47}
\entry {\code {break} debugger command}{308}
\entry {\code {break} statement}{130}
\entry {breakpoint}{304}
\entry {breakpoint at location, how to delete}{309}
\entry {breakpoint commands}{310}
\entry {breakpoint condition}{309}
\entry {breakpoint, delete by number}{309}
\entry {breakpoint, how to disable or enable}{309}
\entry {breakpoint, setting}{308}
\entry {Brennan, Michael}{2, 152, 267, 285, 421, 422}
\entry {Brian Kernighan's \command {awk}}{3, 25, 44, 49, 62, 75, 105, 123, 131, 132, 133, 152, 169, 170, 174}
\entry {Brian Kernighan's \command {awk}, extensions}{393}
\entry {Brian Kernighan's \command {awk}, source code}{421}
\entry {Brini, Davide}{276}
\entry {Broder, Alan J.\:}{404}
\entry {Brown, Martin}{404}
\entry {BSD-based operating systems}{448}
\entry {\code {bt} debugger command (alias for \code {backtrace})}{312}
\entry {Buening, Andreas}{10, 404, 421}
\entry {buffering, input/output}{176, 286}
\entry {buffering, interactive vs.\: noninteractive}{175}
\entry {buffers, flushing}{173, 176}
\entry {buffers, operators for}{49}
\entry {bug reports, email address, \code {bug-gawk@gnu.org}}{420}
\entry {\code {bug-gawk@gnu.org} bug reporting address}{420}
\entry {built-in functions}{159}
\entry {built-in functions, evaluation order}{159}
\entry {built-in variables}{134}
\entry {built-in variables, \code {-v} option\comma {} setting with}{28}
\entry {built-in variables, conveying information}{137}
\entry {built-in variables, user-modifiable}{135}
\entry {Busybox Awk}{422}
\initial {C}
\entry {call by reference}{190}
\entry {call by value}{189}
\entry {call stack, display in debugger}{312}
\entry {caret (\code {^}), \code {^} operator}{117}
\entry {caret (\code {^}), \code {^=} operator}{107, 118}
\entry {caret (\code {^}), in bracket expressions}{47}
\entry {caret (\code {^}), regexp operator}{44, 49}
\entry {\code {case} keyword}{129}
\entry {case sensitivity, and regexps}{136}
\entry {case sensitivity, and string comparisons}{136}
\entry {case sensitivity, array indices and}{146}
\entry {case sensitivity, converting case}{169}
\entry {case sensitivity, example programs}{201}
\entry {case sensitivity, \command {gawk}}{50}
\entry {case sensitivity, regexps and}{49}
\entry {CGI, \command {awk} scripts for}{29}
\entry {changing precision of a number}{331}
\entry {character classes, See bracket expressions}{45}
\entry {character lists in regular expression}{47}
\entry {character lists, See bracket expressions}{45}
\entry {character sets (machine character encodings)}{208, 440}
\entry {character sets, See Also bracket expressions}{45}
\entry {characters, counting}{251}
\entry {characters, transliterating}{257}
\entry {characters, values of as numbers}{207}
\entry {Chassell, Robert J.\:}{10}
\entry {\code {chdir()} extension function}{378}
\entry {\command {chem} utility}{441}
\entry {\code {chr()} extension function}{383}
\entry {\code {chr()} user-defined function}{207}
\entry {\code {clear} debugger command}{309}
\entry {Cliff random numbers}{206}
\entry {\code {cliff_rand()} user-defined function}{206}
\entry {close file or coprocess}{173}
\entry {\code {close()} function}{94, 173}
\entry {\code {close()} function, portability}{95}
\entry {\code {close()} function, return value}{96}
\entry {\code {close()} function, two-way pipes and}{286}
\entry {Close, Diane}{8, 403}
\entry {Collado, Manuel}{10}
\entry {collating elements}{48}
\entry {collating symbols}{48}
\entry {Colombo, Antonio}{10, 405}
\entry {columns, aligning}{82}
\entry {columns, cutting}{233}
\entry {comma (\code {,}), in range patterns}{121}
\entry {command completion, in debugger}{316}
\entry {command line, arguments}{33, 137, 143}
\entry {command line, directories on}{79}
\entry {command line, formats}{13}
\entry {command line, \code {FS} on\comma {} setting}{63}
\entry {command line, invoking \command {awk} from}{27}
\entry {command line, option \option {-f}}{14}
\entry {command line, options}{27}
\entry {command line, options, end of}{28}
\entry {command line, variables\comma {} assigning on}{100}
\entry {command-line options, processing}{216}
\entry {command-line options, string extraction}{297}
\entry {\code {commands} debugger command}{310}
\entry {commands to execute at breakpoint}{310}
\entry {commenting}{16}
\entry {commenting, backslash continuation and}{24}
\entry {common extensions, \code {**} operator}{104}
\entry {common extensions, \code {**=} operator}{108}
\entry {common extensions, \code {/dev/stderr} special file}{93}
\entry {common extensions, \code {/dev/stdin} special file}{93}
\entry {common extensions, \code {/dev/stdout} special file}{93}
\entry {common extensions, \code {{\tt \backslashcurfont }x} escape sequence}{42}
\entry {common extensions, \code {BINMODE} variable}{415}
\entry {common extensions, \code {delete} to delete entire arrays}{152}
\entry {common extensions, \code {func} keyword}{185}
\entry {common extensions, \code {length()} applied to an array}{164}
\entry {common extensions, \code {RS} as a regexp}{55}
\entry {common extensions, single character fields}{63}
\entry {\code {comp.lang.awk} newsgroup}{420}
\entry {comparison expressions}{110}
\entry {comparison expressions, as patterns}{120}
\entry {comparison expressions, string vs.\: regexp}{113}
\entry {compatibility mode (\command {gawk}), extensions}{393}
\entry {compatibility mode (\command {gawk}), file names}{94}
\entry {compatibility mode (\command {gawk}), hexadecimal numbers}{98}
\entry {compatibility mode (\command {gawk}), octal numbers}{98}
\entry {compatibility mode (\command {gawk}), specifying}{28}
\entry {compiled programs}{435, 441}
\entry {compiling \command {gawk} for Cygwin}{416}
\entry {compiling \command {gawk} for MS-DOS and MS-Windows}{413}
\entry {compiling \command {gawk} for VMS}{417}
\entry {compiling \command {gawk} with EMX for OS/2}{414}
\entry {\code {compl()} function (\command {gawk})}{181}
\entry {complement, bitwise}{181}
\entry {compound statements\comma {} control statements and}{126}
\entry {concatenating}{104}
\entry {\code {condition} debugger command}{309}
\entry {conditional expressions}{115}
\entry {configuration option, \code {--disable-extensions}}{411}
\entry {configuration option, \code {--disable-lint}}{411}
\entry {configuration option, \code {--disable-nls}}{412}
\entry {configuration option, \code {--with-whiny-user-strftime}}{412}
\entry {configuration options\comma {} \command {gawk}}{411}
\entry {constant regexps}{42}
\entry {constants, floating-point}{330}
\entry {constants, nondecimal}{279}
\entry {constants, numeric}{97}
\entry {constants, types of}{97}
\entry {context, floating-point}{326}
\entry {continue program, in debugger}{310}
\entry {\code {continue} statement}{131}
\entry {control statements}{126}
\entry {controlling array scanning order}{149}
\entry {convert string to lower case}{170}
\entry {convert string to number}{167}
\entry {convert string to upper case}{170}
\entry {converting integer array subscripts}{153}
\entry {converting, dates to timestamps}{177}
\entry {converting, numbers to strings}{101, 183}
\entry {converting, strings to numbers}{101, 183}
\entry {\code {CONVFMT} variable}{101, 135}
\entry {\code {CONVFMT} variable, and array subscripts}{153}
\entry {cookie}{441}
\entry {coprocesses}{91, 286}
\entry {coprocesses, closing}{94}
\entry {coprocesses, \code {getline} from}{75}
\entry {\code {cos()} function}{160}
\entry {cosine}{160}
\entry {counting}{251}
\entry {\command {csh} utility}{23}
\entry {\command {csh} utility, \code {|&} operator, comparison with}{286}
\entry {\command {csh} utility, \env {POSIXLY_CORRECT} environment variable}{33}
\entry {\code {ctime()} user-defined function}{186}
\entry {currency symbols, localization}{294}
\entry {current system time}{177}
\entry {\code {custom.h} file}{412}
\entry {customized input parser}{345}
\entry {customized output wrapper}{349}
\entry {customized two-way processor}{350}
\entry {\command {cut} utility}{233}
\entry {\code {cut.awk} program}{234}
\initial {D}
\entry {\code {d} debugger command (alias for \code {delete})}{309}
\entry {d.c., See dark corner}{7}
\entry {dark corner}{7, 441}
\entry {dark corner, \code {"0"} is actually true}{110}
\entry {dark corner, \code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
\entry {dark corner, \code {^}, in \code {FS}}{62}
\entry {dark corner, array subscripts}{154}
\entry {dark corner, \code {break} statement}{131}
\entry {dark corner, \code {close()} function}{96}
\entry {dark corner, command-line arguments}{101}
\entry {dark corner, \code {continue} statement}{132}
\entry {dark corner, \code {CONVFMT} variable}{102}
\entry {dark corner, escape sequences}{33}
\entry {dark corner, escape sequences, for metacharacters}{44}
\entry {dark corner, \code {exit} statement}{134}
\entry {dark corner, field separators}{65}
\entry {dark corner, \code {FILENAME} variable}{76, 139}
\entry {dark corner, \code {FNR}/\code {NR} variables}{143}
\entry {dark corner, format-control characters}{85, 86}
\entry {dark corner, \code {FS} as null string}{63}
\entry {dark corner, input files}{55}
\entry {dark corner, invoking \command {awk}}{27}
\entry {dark corner, \code {length()} function}{164}
\entry {dark corner, locale's decimal point character}{102}
\entry {dark corner, multiline records}{69}
\entry {dark corner, \code {NF} variable, decrementing}{60}
\entry {dark corner, \code {OFMT} variable}{84}
\entry {dark corner, regexp constants}{99}
\entry {dark corner, regexp constants, \code {/=} operator and}{108}
\entry {dark corner, regexp constants, as arguments to user-defined functions}{99}
\entry {dark corner, \code {split()} function}{167}
\entry {dark corner, strings, storing}{56}
\entry {dark corner, value of \code {ARGV[0]}}{138}
\entry {data, fixed-width}{66}
\entry {data-driven languages}{436}
\entry {database, group, reading}{225}
\entry {database, users\comma {} reading}{221}
\entry {\command {date} utility, GNU}{176}
\entry {\code {date} utility, POSIX}{180}
\entry {dates, converting to timestamps}{177}
\entry {dates, information related to\comma {} localization}{295}
\entry {Davies, Stephen}{10, 404}
\entry {\code {dcgettext()} function (\command {gawk})}{183, 295}
\entry {\code {dcgettext()} function (\command {gawk}), portability and}{299}
\entry {\code {dcngettext()} function (\command {gawk})}{184, 295}
\entry {\code {dcngettext()} function (\command {gawk}), portability and}{299}
\entry {deadlocks}{286}
\entry {debugger commands, \code {b} (\code {break})}{308}
\entry {debugger commands, \code {backtrace}}{312}
\entry {debugger commands, \code {break}}{308}
\entry {debugger commands, \code {bt} (\code {backtrace})}{312}
\entry {debugger commands, \code {c} (\code {continue})}{310}
\entry {debugger commands, \code {clear}}{309}
\entry {debugger commands, \code {commands}}{310}
\entry {debugger commands, \code {condition}}{309}
\entry {debugger commands, \code {continue}}{310}
\entry {debugger commands, \code {d} (\code {delete})}{309}
\entry {debugger commands, \code {delete}}{309}
\entry {debugger commands, \code {disable}}{309}
\entry {debugger commands, \code {display}}{311}
\entry {debugger commands, \code {down}}{313}
\entry {debugger commands, \code {dump}}{314}
\entry {debugger commands, \code {e} (\code {enable})}{309}
\entry {debugger commands, \code {enable}}{309}
\entry {debugger commands, \code {end}}{310}
\entry {debugger commands, \code {eval}}{311}
\entry {debugger commands, \code {f} (\code {frame})}{313}
\entry {debugger commands, \code {finish}}{310}
\entry {debugger commands, \code {frame}}{313}
\entry {debugger commands, \code {h} (\code {help})}{315}
\entry {debugger commands, \code {help}}{315}
\entry {debugger commands, \code {i} (\code {info})}{313}
\entry {debugger commands, \code {ignore}}{310}
\entry {debugger commands, \code {info}}{313}
\entry {debugger commands, \code {l} (\code {list})}{315}
\entry {debugger commands, \code {list}}{315}
\entry {debugger commands, \code {n} (\code {next})}{310}
\entry {debugger commands, \code {next}}{310}
\entry {debugger commands, \code {nexti}}{310}
\entry {debugger commands, \code {ni} (\code {nexti})}{310}
\entry {debugger commands, \code {o} (\code {option})}{314}
\entry {debugger commands, \code {option}}{314}
\entry {debugger commands, \code {p} (\code {print})}{311}
\entry {debugger commands, \code {print}}{311}
\entry {debugger commands, \code {printf}}{312}
\entry {debugger commands, \code {q} (\code {quit})}{316}
\entry {debugger commands, \code {quit}}{316}
\entry {debugger commands, \code {r} (\code {run})}{311}
\entry {debugger commands, \code {return}}{310}
\entry {debugger commands, \code {run}}{311}
\entry {debugger commands, \code {s} (\code {step})}{311}
\entry {debugger commands, \code {set}}{312}
\entry {debugger commands, \code {si} (\code {stepi})}{311}
\entry {debugger commands, \code {silent}}{310}
\entry {debugger commands, \code {step}}{311}
\entry {debugger commands, \code {stepi}}{311}
\entry {debugger commands, \code {t} (\code {tbreak})}{310}
\entry {debugger commands, \code {tbreak}}{310}
\entry {debugger commands, \code {trace}}{316}
\entry {debugger commands, \code {u} (\code {until})}{311}
\entry {debugger commands, \code {undisplay}}{312}
\entry {debugger commands, \code {until}}{311}
\entry {debugger commands, \code {unwatch}}{312}
\entry {debugger commands, \code {up}}{313}
\entry {debugger commands, \code {w} (\code {watch})}{312}
\entry {debugger commands, \code {watch}}{312}
\entry {debugger default list amount}{314}
\entry {debugger history file}{314}
\entry {debugger history size}{314}
\entry {debugger options}{314}
\entry {debugger prompt}{314}
\entry {debugger, how to start}{305}
\entry {debugger, read commands from a file}{314}
\entry {debugging \command {awk} programs}{303}
\entry {debugging \command {gawk}, bug reports}{420}
\entry {decimal point character, locale specific}{31}
\entry {decrement operators}{109}
\entry {\code {default} keyword}{129}
\entry {Deifik, Scott}{10, 404, 421}
\entry {\code {delete} \var {array}}{152}
\entry {delete breakpoint at location}{309}
\entry {delete breakpoint by number}{309}
\entry {\code {delete} debugger command}{309}
\entry {\code {delete} statement}{151}
\entry {delete watchpoint}{312}
\entry {deleting elements in arrays}{151}
\entry {deleting entire arrays}{152}
\entry {Demaille, Akim}{10}
\entry {describe call stack frame, in debugger}{313}
\entry {differences between \command {gawk} and \command {awk}}{164}
\entry {differences in \command {awk} and \command {gawk}, \code {ARGC}/\code {ARGV} variables}{144}
\entry {differences in \command {awk} and \command {gawk}, \code {ARGIND} variable}{138}
\entry {differences in \command {awk} and \command {gawk}, array elements, deleting}{152}
\entry {differences in \command {awk} and \command {gawk}, \code {AWKLIBPATH} environment variable}{35}
\entry {differences in \command {awk} and \command {gawk}, \code {AWKPATH} environment variable}{34}
\entry {differences in \command {awk} and \command {gawk}, \code {BEGIN}/\code {END} patterns}{123}
\entry {differences in \command {awk} and \command {gawk}, \code {BEGINFILE}/\code {ENDFILE} patterns}{123}
\entry {differences in \command {awk} and \command {gawk}, \code {BINMODE} variable}{135, 415}
\entry {differences in \command {awk} and \command {gawk}, \code {close()} function}{95, 96}
\entry {differences in \command {awk} and \command {gawk}, command line directories}{79}
\entry {differences in \command {awk} and \command {gawk}, \code {ERRNO} variable}{138}
\entry {differences in \command {awk} and \command {gawk}, error messages}{92}
\entry {differences in \command {awk} and \command {gawk}, \code {FIELDWIDTHS} variable}{135}
\entry {differences in \command {awk} and \command {gawk}, \code {FPAT} variable}{135}
\entry {differences in \command {awk} and \command {gawk}, \code {FUNCTAB} variable}{139}
\entry {differences in \command {awk} and \command {gawk}, function arguments (\command {gawk})}{159}
\entry {differences in \command {awk} and \command {gawk}, \code {getline} command}{71}
\entry {differences in \command {awk} and \command {gawk}, \code {IGNORECASE} variable}{136}
\entry {differences in \command {awk} and \command {gawk}, implementation limitations}{76, 92}
\entry {differences in \command {awk} and \command {gawk}, indirect function calls}{193}
\entry {differences in \command {awk} and \command {gawk}, input/output operators}{75, 91}
\entry {differences in \command {awk} and \command {gawk}, line continuations}{115}
\entry {differences in \command {awk} and \command {gawk}, \code {LINT} variable}{136}
\entry {differences in \command {awk} and \command {gawk}, \code {match()} function}{165}
\entry {differences in \command {awk} and \command {gawk}, \code {print}/\code {printf} statements}{86}
\entry {differences in \command {awk} and \command {gawk}, \code {PROCINFO} array}{139}
\entry {differences in \command {awk} and \command {gawk}, record separators}{55}
\entry {differences in \command {awk} and \command {gawk}, regexp constants}{99}
\entry {differences in \command {awk} and \command {gawk}, regular expressions}{50}
\entry {differences in \command {awk} and \command {gawk}, \code {RS}/\code {RT} variables}{56}
\entry {differences in \command {awk} and \command {gawk}, \code {RT} variable}{142}
\entry {differences in \command {awk} and \command {gawk}, single-character fields}{63}
\entry {differences in \command {awk} and \command {gawk}, \code {split()} function}{167}
\entry {differences in \command {awk} and \command {gawk}, strings}{97}
\entry {differences in \command {awk} and \command {gawk}, strings, storing}{56}
\entry {differences in \command {awk} and \command {gawk}, \code {SYMTAB} variable}{142}
\entry {differences in \command {awk} and \command {gawk}, \code {TEXTDOMAIN} variable}{137}
\entry {differences in \command {awk} and \command {gawk}, trunc-mod operation}{104}
\entry {directories, command line}{79}
\entry {directories, searching}{274}
\entry {directories, searching for shared libraries}{35}
\entry {directories, searching for source files}{34}
\entry {disable breakpoint}{309}
\entry {\code {disable} debugger command}{309}
\entry {\code {display} debugger command}{311}
\entry {display debugger options}{314}
\entry {division}{104}
\entry {\code {do}-\code {while} statement}{128}
\entry {\code {do}-\code {while} statement, use of regexps in}{41}
\entry {documentation, of \command {awk} programs}{202}
\entry {documentation, online}{8}
\entry {documents\comma {} searching}{253}
\entry {dollar sign (\code {$}), \code {$} field operator}{57, 117}
\entry {dollar sign (\code {$}), incrementing fields and arrays}{109}
\entry {dollar sign (\code {$}), regexp operator}{44}
\entry {double precision floating-point}{319}
\entry {double quote (\code {"}) in shell commands}{14}
\entry {double quote (\code {"}), in regexp constants}{51}
\entry {double quote (\code {"}), in shell commands}{17}
\entry {\code {down} debugger command}{313}
\entry {Drepper, Ulrich}{10}
\entry {dump all variables of a program}{29}
\entry {\code {dump} debugger command}{314}
\entry {\code {dupword.awk} program}{254}
\entry {dynamic profiling}{291}
\entry {dynamically loaded extensions}{335}
\initial {E}
\entry {\code {e} debugger command (alias for \code {enable})}{309}
\entry {EBCDIC}{208}
\entry {effective group ID of \command {gawk} user}{140}
\entry {effective user ID of \command {gawk} user}{140}
\entry {\command {egrep} utility}{47, 238}
\entry {\code {egrep.awk} program}{239}
\entry {elements in arrays, assigning values}{147}
\entry {elements in arrays, deleting}{151}
\entry {elements in arrays, order of access by \code {in} operator}{149}
\entry {elements in arrays, scanning}{148}
\entry {elements of arrays}{146}
\entry {email address for bug reports, \code {bug-gawk@gnu.org}}{420}
\entry {\code {EMISTERED}}{287}
\entry {empty array elements}{147}
\entry {empty pattern}{124}
\entry {empty strings}{55}
\entry {empty strings, See null strings}{62}
\entry {enable breakpoint}{309}
\entry {\code {enable} debugger command}{309}
\entry {\code {end} debugger command}{310}
\entry {\code {END} pattern}{122}
\entry {\code {END} pattern, and profiling}{289}
\entry {\code {END} pattern, \code {assert()} user-defined function and}{205}
\entry {\code {END} pattern, backslash continuation and}{242}
\entry {\code {END} pattern, Boolean patterns and}{121}
\entry {\code {END} pattern, \code {exit} statement and}{134}
\entry {\code {END} pattern, \code {next}/\code {nextfile} statements and}{123, 133}
\entry {\code {END} pattern, operators and}{122}
\entry {\code {END} pattern, \code {print} statement and}{123}
\entry {\code {ENDFILE} pattern}{123}
\entry {\code {ENDFILE} pattern, Boolean patterns and}{121}
\entry {\code {endfile()} user-defined function}{213}
\entry {\code {endgrent()} function (C library)}{229}
\entry {\code {endgrent()} user-defined function}{229}
\entry {\code {endpwent()} function (C library)}{225}
\entry {\code {endpwent()} user-defined function}{225}
\entry {\code {ENVIRON} array}{138}
\entry {environment variables used by \command {gawk}}{34}
\entry {environment variables, in \code {ENVIRON} array}{138}
\entry {epoch, definition of}{442}
\entry {equals sign (\code {=}), \code {=} operator}{106}
\entry {equals sign (\code {=}), \code {==} operator}{111, 118}
\entry {EREs (Extended Regular Expressions)}{47}
\entry {\code {ERRNO} variable}{138, 288}
\entry {\code {ERRNO} variable, with \code {BEGINFILE} pattern}{124}
\entry {\code {ERRNO} variable, with \command {close()} function}{96}
\entry {\code {ERRNO} variable, with \command {getline} command}{71}
\entry {error handling}{92}
\entry {error handling, \code {ERRNO} variable and}{138}
\entry {error output}{92}
\entry {escape processing, \code {gsub()}/\code {gensub()}/\code {sub()} functions}{170}
\entry {escape sequences, in strings}{42}
\entry {\code {eval} debugger command}{311}
\entry {evaluate expressions, in debugger}{311}
\entry {evaluation order}{109}
\entry {evaluation order, concatenation}{105}
\entry {evaluation order, functions}{159}
\entry {examining fields}{56}
\entry {exclamation point (\code {!}), \code {!} operator}{114, 117, 241}
\entry {exclamation point (\code {!}), \code {!=} operator}{111, 118}
\entry {exclamation point (\code {!}), \code {!~} operator}{41, 50, 51, 98, 111, 113, 118, 120}
\entry {\code {exit} statement}{134}
\entry {exit status, of \command {gawk}}{37}
\entry {exit status, of VMS}{419}
\entry {exit the debugger}{316}
\entry {\code {exp()} function}{160}
\entry {\command {expand} utility}{20}
\entry {Expat XML parser library}{387}
\entry {exponent}{160}
\entry {expressions}{97}
\entry {expressions, as patterns}{119}
\entry {expressions, assignment}{106}
\entry {expressions, Boolean}{113}
\entry {expressions, comparison}{110}
\entry {expressions, conditional}{115}
\entry {expressions, matching, See comparison expressions}{110}
\entry {expressions, selecting}{115}
\entry {Extended Regular Expressions (EREs)}{47}
\entry {extension API}{337}
\entry {extension API informational variables}{365}
\entry {extension API version}{365}
\entry {extension API, version number}{141}
\entry {extension example}{368}
\entry {extension registration}{344}
\entry {extension search path}{368}
\entry {extensions distributed with \command {gawk}}{378}
\entry {extensions, allocating memory}{342}
\entry {extensions, Brian Kernighan's \command {awk}}{393, 401}
\entry {extensions, common\comma {} \code {**} operator}{104}
\entry {extensions, common\comma {} \code {**=} operator}{108}
\entry {extensions, common\comma {} \code {/dev/stderr} special file}{93}
\entry {extensions, common\comma {} \code {/dev/stdin} special file}{93}
\entry {extensions, common\comma {} \code {/dev/stdout} special file}{93}
\entry {extensions, common\comma {} \code {{\tt \backslashcurfont }x} escape sequence}{42}
\entry {extensions, common\comma {} \code {BINMODE} variable}{415}
\entry {extensions, common\comma {} \code {delete} to delete entire arrays}{152}
\entry {extensions, common\comma {} \code {fflush()} function}{174}
\entry {extensions, common\comma {} \code {func} keyword}{185}
\entry {extensions, common\comma {} \code {length()} applied to an array}{164}
\entry {extensions, common\comma {} \code {RS} as a regexp}{55}
\entry {extensions, common\comma {} single character fields}{63}
\entry {extensions, in \command {gawk}, not in POSIX \command {awk}}{393}
\entry {extensions, \command {mawk}}{401}
\entry {extensions, where to find}{387}
\entry {\code {extract.awk} program}{264}
\entry {extraction, of marked strings (internationalization)}{297}
\initial {F}
\entry {\code {f} debugger command (alias for \code {frame})}{313}
\entry {false, logical}{109}
\entry {FDL (Free Documentation License)}{461}
\entry {features, adding to \command {gawk}}{426}
\entry {features, advanced, See advanced features}{39}
\entry {features, deprecated}{39}
\entry {features, undocumented}{39}
\entry {Fenlason, Jay}{4, 403}
\entry {\code {fflush()} function}{173}
\entry {field numbers}{57}
\entry {field operator \code {$}}{57}
\entry {field operators\comma {} dollar sign as}{57}
\entry {field separator, in multiline records}{69}
\entry {field separator, on command line}{63}
\entry {field separator, POSIX and}{65}
\entry {field separators}{60, 135, 137}
\entry {field separators, choice of}{61}
\entry {field separators, \code {FIELDWIDTHS} variable and}{135}
\entry {field separators, \code {FPAT} variable and}{135}
\entry {field separators, POSIX and}{56}
\entry {field separators, regular expressions as}{61}
\entry {field separators, See Also \code {OFS}}{59}
\entry {field separators, spaces as}{235}
\entry {fields}{53, 56, 436}
\entry {fields, adding}{59}
\entry {fields, changing contents of}{58}
\entry {fields, cutting}{233}
\entry {fields, examining}{56}
\entry {fields, number of}{57}
\entry {fields, numbers}{57}
\entry {fields, printing}{81}
\entry {fields, separating}{60}
\entry {fields, single-character}{63}
\entry {\code {FIELDWIDTHS} variable}{66, 135}
\entry {file descriptors}{92}
\entry {file names, distinguishing}{138}
\entry {file names, in compatibility mode}{94}
\entry {file names, standard streams in \command {gawk}}{93}
\entry {\code {FILENAME} variable}{53, 139}
\entry {\code {FILENAME} variable, \code {getline}\comma {} setting with}{76}
\entry {filenames, assignments as}{216}
\entry {files, \code {.gmo}}{294}
\entry {files, \code {.gmo}, converting from \code {.po}}{300}
\entry {files, \code {.gmo}, specifying directory of}{294, 295}
\entry {files, \code {.po}}{293, 297}
\entry {files, \code {.po}, converting to \code {.gmo}}{300}
\entry {files, \code {.pot}}{293}
\entry {files, \code {/dev/\dots {}} special files}{93}
\entry {files, \code {/inet/\dots {}} (\command {gawk})}{287}
\entry {files, \code {/inet4/\dots {}} (\command {gawk})}{287}
\entry {files, \code {/inet6/\dots {}} (\command {gawk})}{287}
\entry {files, \command {awk} programs in}{14}
\entry {files, \code {awkprof.out}}{289}
\entry {files, \file {awkvars.out}}{29}
\entry {files, closing}{173}
\entry {files, descriptors, See file descriptors}{92}
\entry {files, group}{225}
\entry {files, initialization and cleanup}{212}
\entry {files, input, See input files}{14}
\entry {files, log\comma {} timestamps in}{176}
\entry {files, managing}{212}
\entry {files, managing, data file boundaries}{212}
\entry {files, message object}{294}
\entry {files, message object, converting from portable object files}{300}
\entry {files, message object, specifying directory of}{294, 295}
\entry {files, multiple passes over}{34}
\entry {files, multiple\comma {} duplicating output into}{246}
\entry {files, output, See output files}{94}
\entry {files, password}{221}
\entry {files, portable object}{293, 297}
\entry {files, portable object template}{293}
\entry {files, portable object, converting to message object files}{300}
\entry {files, portable object, generating}{29}
\entry {files, processing\comma {} \code {ARGIND} variable and}{138}
\entry {files, reading}{214}
\entry {files, reading, multiline records}{69}
\entry {files, searching for regular expressions}{238}
\entry {files, skipping}{214}
\entry {files, source\comma {} search path for}{274}
\entry {files, splitting}{244}
\entry {files, Texinfo\comma {} extracting programs from}{263}
\entry {find substring in string}{163}
\entry {finding extensions}{368}
\entry {\code {finish} debugger command}{310}
\entry {Fish, Fred}{404}
\entry {fixed-width data}{66}
\entry {flag variables}{114, 246}
\entry {floating-point, numbers}{319, 320}
\entry {floating-point, numbers\comma {} arbitrary precision}{319}
\entry {floating-point, VAX/VMS}{419}
\entry {flush buffered output}{173}
\entry {\code {fnmatch()} extension function}{381}
\entry {\code {FNR} variable}{53, 139}
\entry {\code {FNR} variable, changing}{143}
\entry {\code {for} statement}{128}
\entry {\code {for} statement, looping over arrays}{148}
\entry {\code {fork()} extension function}{382}
\entry {format specifiers}{84}
\entry {format specifiers, mixing regular with positional specifiers}{298}
\entry {format specifiers, \code {printf} statement}{85}
\entry {format specifiers, \code {strftime()} function (\command {gawk})}{178}
\entry {format time string}{177}
\entry {formats\comma {} numeric output}{84}
\entry {formatting output}{84}
\entry {formatting strings}{167}
\entry {forward slash (\code {/}) to enclose regular expressions}{41}
\entry {forward slash (\code {/}), \code {/} operator}{117}
\entry {forward slash (\code {/}), \code {/=} operator}{107, 118}
\entry {forward slash (\code {/}), \code {/=} operator, vs. \code {/=\dots {}/} regexp constant}{108}
\entry {forward slash (\code {/}), patterns and}{120}
\entry {\code {FPAT} variable}{68, 135}
\entry {\code {frame} debugger command}{313}
\entry {Free Documentation License (FDL)}{461}
\entry {Free Software Foundation (FSF)}{8, 407, 443}
\entry {FreeBSD}{448}
\entry {\code {FS} variable}{60, 135}
\entry {\code {FS} variable, \code {--field-separator} option and}{27}
\entry {\code {FS} variable, as null string}{63}
\entry {\code {FS} variable, as TAB character}{31}
\entry {\code {FS} variable, changing value of}{61}
\entry {\code {FS} variable, running \command {awk} programs and}{234}
\entry {\code {FS} variable, setting from command line}{63}
\entry {\code {FS}, containing \code {^}}{62}
\entry {\code {FS}, in multiline records}{69}
\entry {FSF (Free Software Foundation)}{8, 407, 443}
\entry {\code {fts()} extension function}{379}
\entry {\code {FUNCTAB} array}{139}
\entry {function calls}{115}
\entry {function calls, indirect}{193}
\entry {function definition example}{185}
\entry {function pointers}{193}
\entry {functions, arrays as parameters to}{190}
\entry {functions, built-in}{115, 159}
\entry {functions, built-in, evaluation order}{159}
\entry {functions, defining}{184}
\entry {functions, library}{201}
\entry {functions, library, assertions}{204}
\entry {functions, library, associative arrays and}{202}
\entry {functions, library, C library}{216}
\entry {functions, library, character values as numbers}{207}
\entry {functions, library, Cliff random numbers}{206}
\entry {functions, library, command-line options}{216}
\entry {functions, library, example program for using}{268}
\entry {functions, library, group database\comma {} reading}{225}
\entry {functions, library, managing data files}{212}
\entry {functions, library, managing time}{209}
\entry {functions, library, merging arrays into strings}{209}
\entry {functions, library, rounding numbers}{206}
\entry {functions, library, user database\comma {} reading}{221}
\entry {functions, names of}{145, 184}
\entry {functions, recursive}{185}
\entry {functions, string-translation}{183}
\entry {functions, undefined}{190}
\entry {functions, user-defined}{184}
\entry {functions, user-defined, calling}{187}
\entry {functions, user-defined, counts, in a profile}{291}
\entry {functions, user-defined, library of}{201}
\entry {functions, user-defined, \code {next}/\code {nextfile} statements and}{133}
\initial {G}
\entry {G-d}{10}
\entry {Garfinkle, Scott}{404}
\entry {\command {gawk} program, dynamic profiling}{291}
\entry {\command {gawk} version}{141}
\entry {\command {gawk}, \code {ARGIND} variable in}{33}
\entry {\command {gawk}, \command {awk} and}{3, 5}
\entry {\command {gawk}, bitwise operations in}{181}
\entry {\command {gawk}, \code {break} statement in}{131}
\entry {\command {gawk}, built-in variables and}{135}
\entry {\command {gawk}, character classes and}{48}
\entry {\command {gawk}, coding style in}{426}
\entry {\command {gawk}, command-line options, and regular expressions}{49}
\entry {\command {gawk}, comparison operators and}{112}
\entry {\command {gawk}, configuring}{412}
\entry {\command {gawk}, configuring, options}{411}
\entry {\command {gawk}, \code {continue} statement in}{132}
\entry {\command {gawk}, distribution}{408}
\entry {\command {gawk}, \code {ERRNO} variable in}{71, 96, 124, 138, 288}
\entry {\command {gawk}, escape sequences}{44}
\entry {\command {gawk}, extensions\comma {} disabling}{31}
\entry {\command {gawk}, features, adding}{426}
\entry {\command {gawk}, features, advanced}{279}
\entry {\command {gawk}, field separators and}{136}
\entry {\command {gawk}, \code {FIELDWIDTHS} variable in}{66, 135}
\entry {\command {gawk}, file names in}{92}
\entry {\command {gawk}, format-control characters}{85, 86}
\entry {\command {gawk}, \code {FPAT} variable in}{68, 135}
\entry {\command {gawk}, \code {FUNCTAB} array in}{139}
\entry {\command {gawk}, function arguments and}{159}
\entry {\command {gawk}, hexadecimal numbers and}{98}
\entry {\command {gawk}, \code {IGNORECASE} variable in}{50, 136, 146, 162, 285}
\entry {\command {gawk}, implementation issues}{425}
\entry {\command {gawk}, implementation issues, debugging}{425}
\entry {\command {gawk}, implementation issues, downward compatibility}{425}
\entry {\command {gawk}, implementation issues, limits}{76}
\entry {\command {gawk}, implementation issues, pipes}{92}
\entry {\command {gawk}, installing}{407}
\entry {\command {gawk}, internationalization and, See internationalization}{293}
\entry {\command {gawk}, interpreter\comma {} adding code to}{376}
\entry {\command {gawk}, interval expressions and}{46}
\entry {\command {gawk}, line continuation in}{115}
\entry {\command {gawk}, \code {LINT} variable in}{136}
\entry {\command {gawk}, list of contributors to}{403}
\entry {\command {gawk}, MS-DOS version of}{415}
\entry {\command {gawk}, MS-Windows version of}{415}
\entry {\command {gawk}, newlines in}{23}
\entry {\command {gawk}, octal numbers and}{98}
\entry {\command {gawk}, OS/2 version of}{415}
\entry {\command {gawk}, \code {PROCINFO} array in}{139, 141, 177, 287}
\entry {\command {gawk}, regexp constants and}{99}
\entry {\command {gawk}, regular expressions, case sensitivity}{50}
\entry {\command {gawk}, regular expressions, operators}{48}
\entry {\command {gawk}, regular expressions, precedence}{46}
\entry {\command {gawk}, \code {RT} variable in}{55, 71, 142}
\entry {\command {gawk}, See Also \command {awk}}{3}
\entry {\command {gawk}, source code\comma {} obtaining}{407}
\entry {\command {gawk}, splitting fields and}{67}
\entry {\command {gawk}, string-translation functions}{183}
\entry {\command {gawk}, \code {SYMTAB} array in}{142}
\entry {\command {gawk}, \code {TEXTDOMAIN} variable in}{137}
\entry {\command {gawk}, timestamps}{176}
\entry {\command {gawk}, uses for}{3}
\entry {\command {gawk}, versions of, information about\comma {} printing}{32}
\entry {\command {gawk}, VMS version of}{417}
\entry {\command {gawk}, word-boundary operator}{49}
\entry {\code {gawkextlib}}{387}
\entry {\code {gawkextlib} project}{387}
\entry {General Public License (GPL)}{443}
\entry {General Public License, See GPL}{8}
\entry {generate time values}{177}
\entry {\code {gensub()} function (\command {gawk})}{99, 162}
\entry {\code {gensub()} function (\command {gawk}), escape processing}{170}
\entry {\code {getaddrinfo()} function (C library)}{288}
\entry {\code {getgrent()} function (C library)}{225, 229}
\entry {\code {getgrent()} user-defined function}{225, 229}
\entry {\code {getgrgid()} function (C library)}{229}
\entry {\code {getgrgid()} user-defined function}{229}
\entry {\code {getgrnam()} function (C library)}{228}
\entry {\code {getgrnam()} user-defined function}{228}
\entry {\code {getgruser()} function (C library)}{229}
\entry {\code {getgruser()} function, user-defined}{229}
\entry {\code {getline} command}{53}
\entry {\code {getline} command, \code {_gr_init()} user-defined function}{227}
\entry {\code {getline} command, \code {_pw_init()} function}{224}
\entry {\code {getline} command, coprocesses\comma {} using from}{75, 94}
\entry {\code {getline} command, deadlock and}{286}
\entry {\code {getline} command, explicit input with}{71}
\entry {\code {getline} command, \code {FILENAME} variable and}{76}
\entry {\code {getline} command, return values}{71}
\entry {\code {getline} command, variants}{77}
\entry {\code {getline} from a file}{73}
\entry {\code {getline} into a variable}{72}
\entry {\code {getline} statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}{124}
\entry {\code {getlocaltime()} user-defined function}{209}
\entry {\code {getopt()} function (C library)}{216}
\entry {\code {getopt()} user-defined function}{218}
\entry {\code {getpwent()} function (C library)}{221, 225}
\entry {\code {getpwent()} user-defined function}{221, 225}
\entry {\code {getpwnam()} function (C library)}{224}
\entry {\code {getpwnam()} user-defined function}{224}
\entry {\code {getpwuid()} function (C library)}{224}
\entry {\code {getpwuid()} user-defined function}{224}
\entry {\code {gettext} library}{293}
\entry {\code {gettext} library, locale categories}{294}
\entry {\code {gettext()} function (C library)}{294}
\entry {\code {gettimeofday()} extension function}{386}
\entry {\command {git} utility}{387, 422, 425, 427}
\entry {\command {git}, use of for \command {gawk} source code}{429}
\entry {GMP}{328}
\entry {GNITS mailing list}{10}
\entry {GNU \command {awk}, See \command {gawk}}{3}
\entry {GNU Free Documentation License}{461}
\entry {GNU General Public License}{443}
\entry {GNU Lesser General Public License}{445}
\entry {GNU long options}{27}
\entry {GNU long options, printing list of}{30}
\entry {GNU Project}{8, 443}
\entry {GNU/Linux}{8, 300, 448}
\entry {Gordon, Assaf}{404}
\entry {GPL (General Public License)}{8, 443}
\entry {GPL (General Public License), printing}{28}
\entry {\command {grcat} program}{225}
\entry {Grigera, Juan}{404}
\entry {group database, reading}{225}
\entry {group file}{225}
\entry {group ID of \command {gawk} user}{140}
\entry {groups\comma {} information about}{225}
\entry {\code {gsub()} function}{99, 163}
\entry {\code {gsub()} function, arguments of}{169}
\entry {\code {gsub()} function, escape processing}{170}
\initial {H}
\entry {\code {h} debugger command (alias for \code {help})}{315}
\entry {Hankerson, Darrel}{10, 404}
\entry {Haque, John}{404}
\entry {Hartholz, Elaine}{10}
\entry {Hartholz, Marshall}{10}
\entry {Hasegawa, Isamu}{404}
\entry {\code {help} debugger command}{315}
\entry {hexadecimal numbers}{97}
\entry {hexadecimal values\comma {} enabling interpretation of}{30}
\entry {history expansion, in debugger}{316}
\entry {\code {histsort.awk} program}{262}
\entry {Hughes, Phil}{10}
\entry {\code {HUP} signal, for dynamic profiling}{292}
\entry {hyphen (\code {-}), \code {-} operator}{117, 118}
\entry {hyphen (\code {-}), \code {--} operator}{109, 117}
\entry {hyphen (\code {-}), \code {-=} operator}{107, 118}
\entry {hyphen (\code {-}), filenames beginning with}{28}
\entry {hyphen (\code {-}), in bracket expressions}{47}
\initial {I}
\entry {\code {i} debugger command (alias for \code {info})}{313}
\entry {\command {id} utility}{242}
\entry {\code {id.awk} program}{242}
\entry {IEEE-754 format}{325}
\entry {\code {if} statement}{126}
\entry {\code {if} statement, actions\comma {} changing}{121}
\entry {\code {if} statement, use of regexps in}{41}
\entry {\code {igawk.sh} program}{269}
\entry {ignore breakpoint}{310}
\entry {\code {ignore} debugger command}{310}
\entry {\code {IGNORECASE} variable}{136}
\entry {\code {IGNORECASE} variable, and array indices}{146}
\entry {\code {IGNORECASE} variable, and array sorting functions}{285}
\entry {\code {IGNORECASE} variable, in example programs}{201}
\entry {\code {IGNORECASE} variable, with \code {~} and \code {!~} operators}{50}
\entry {Illumos}{423}
\entry {Illumos, POSIX-compliant \command {awk}}{423}
\entry {implementation issues, \command {gawk}}{425}
\entry {implementation issues, \command {gawk}, limits}{76, 92}
\entry {implementation issues\comma {} \command {gawk}, debugging}{425}
\entry {\code {in} operator}{111, 118, 129}
\entry {\code {in} operator, index existence in multidimensional arrays}{154}
\entry {\code {in} operator, order of array access}{149}
\entry {\code {in} operator, testing if array element exists}{147}
\entry {\code {in} operator, use in loops}{148}
\entry {increment operators}{108}
\entry {\code {index()} function}{163}
\entry {indexing arrays}{146}
\entry {indirect function calls}{193}
\entry {infinite precision}{319}
\entry {\code {info} debugger command}{313}
\entry {initialization, automatic}{22}
\entry {\code {inplace} extension}{383}
\entry {input files}{53}
\entry {input files, closing}{94}
\entry {input files, counting elements in}{251}
\entry {input files, examples}{18}
\entry {input files, reading}{53}
\entry {input files, running \command {awk} without}{14}
\entry {input files, variable assignments and}{33}
\entry {input pipeline}{74}
\entry {input record, length of}{164}
\entry {input redirection}{73}
\entry {input, data\comma {} nondecimal}{279}
\entry {input, explicit}{71}
\entry {input, files, See input files}{69}
\entry {input, multiline records}{69}
\entry {input, splitting into records}{53}
\entry {input, standard}{14, 92}
\entry {input/output functions}{173}
\entry {input/output, binary}{135}
\entry {input/output, from \code {BEGIN} and \code {END}}{123}
\entry {input/output, two-way}{286}
\entry {insomnia, cure for}{254}
\entry {installation, VMS}{417}
\entry {installing \command {gawk}}{407}
\entry {instruction tracing, in debugger}{314}
\entry {\code {INT} signal (MS-Windows)}{292}
\entry {\code {int()} function}{160}
\entry {integer array indices}{153}
\entry {integers}{319}
\entry {integers, arbitrary precision}{332}
\entry {integers, unsigned}{319}
\entry {interacting with other programs}{174}
\entry {internationalization}{183, 293}
\entry {internationalization, localization}{137, 293}
\entry {internationalization, localization, character classes}{48}
\entry {internationalization, localization, \command {gawk} and}{293}
\entry {internationalization, localization, locale categories}{294}
\entry {internationalization, localization, marked strings}{295}
\entry {internationalization, localization, portability and}{298}
\entry {internationalizing a program}{293}
\entry {interpreted programs}{435, 444}
\entry {interval expressions, regexp operator}{46}
\entry {\code {inventory-shipped} file}{19}
\entry {invoke shell command}{174}
\entry {\code {isarray()} function (\command {gawk})}{183}
\entry {ISO}{444}
\entry {ISO 8859-1}{440}
\entry {ISO Latin-1}{440}
\initial {J}
\entry {Jacobs, Andrew}{223}
\entry {Jaegermann, Michal}{10, 404}
\entry {Java implementation of \command {awk}}{423}
\entry {Java programming language}{444}
\entry {\command {jawk}}{423}
\entry {Jedi knights}{39}
\entry {\code {join()} user-defined function}{209}
\initial {K}
\entry {Kahrs, J\"urgen}{10, 404}
\entry {Kasal, Stepan}{10}
\entry {Kenobi, Obi-Wan}{39}
\entry {Kernighan, Brian}{4, 7, 10, 74, 104, 201, 393, 403, 421, 437, 441}
\entry {\command {kill} command\comma {} dynamic profiling}{292}
\entry {Knights, jedi}{39}
\entry {Knuth, Donald}{319}
\entry {Kwok, Conrad}{404}
\initial {L}
\entry {\code {l} debugger command (alias for \code {list})}{315}
\entry {\code {labels.awk} program}{259}
\entry {languages\comma {} data-driven}{436}
\entry {Laurie, Dirk}{331}
\entry {\code {LC_ALL} locale category}{295}
\entry {\code {LC_COLLATE} locale category}{294}
\entry {\code {LC_CTYPE} locale category}{294}
\entry {\code {LC_MESSAGES} locale category}{294}
\entry {\code {LC_MESSAGES} locale category, \code {bindtextdomain()} function (\command {gawk})}{296}
\entry {\code {LC_MONETARY} locale category}{294}
\entry {\code {LC_NUMERIC} locale category}{295}
\entry {\code {LC_RESPONSE} locale category}{295}
\entry {\code {LC_TIME} locale category}{295}
\entry {left angle bracket (\code {<}), \code {<} operator}{111, 118}
\entry {left angle bracket (\code {<}), \code {<} operator (I/O)}{73}
\entry {left angle bracket (\code {<}), \code {<=} operator}{111, 118}
\entry {left shift}{181}
\entry {left shift, bitwise}{181}
\entry {leftmost longest match}{69}
\entry {length of input record}{164}
\entry {length of string}{164}
\entry {\code {length()} function}{164}
\entry {Lesser General Public License (LGPL)}{445}
\entry {LGPL (Lesser General Public License)}{445}
\entry {libmawk}{423}
\entry {libraries of \command {awk} functions}{201}
\entry {libraries of \command {awk} functions, assertions}{204}
\entry {libraries of \command {awk} functions, associative arrays and}{202}
\entry {libraries of \command {awk} functions, character values as numbers}{207}
\entry {libraries of \command {awk} functions, command-line options}{216}
\entry {libraries of \command {awk} functions, example program for using}{268}
\entry {libraries of \command {awk} functions, group database, reading}{225}
\entry {libraries of \command {awk} functions, managing, data files}{212}
\entry {libraries of \command {awk} functions, managing, time}{209}
\entry {libraries of \command {awk} functions, merging arrays into strings}{209}
\entry {libraries of \command {awk} functions, rounding numbers}{206}
\entry {libraries of \command {awk} functions, user database, reading}{221}
\entry {line breaks}{23}
\entry {line continuations}{114}
\entry {line continuations, \command {gawk}}{115}
\entry {line continuations, in \code {print} statement}{82}
\entry {line continuations, with C shell}{22}
\entry {lines, blank, printing}{81}
\entry {lines, counting}{251}
\entry {lines, duplicate\comma {} removing}{262}
\entry {lines, matching ranges of}{121}
\entry {lines, skipping between markers}{121}
\entry {lint checking}{136}
\entry {lint checking, array elements}{152}
\entry {lint checking, array subscripts}{154}
\entry {lint checking, empty programs}{27}
\entry {lint checking, issuing warnings}{30}
\entry {lint checking, \env {POSIXLY_CORRECT} environment variable}{33}
\entry {lint checking, undefined functions}{191}
\entry {\code {LINT} variable}{136}
\entry {Linux}{8, 300, 448}
\entry {list all global variables, in debugger}{313}
\entry {\code {list} debugger command}{315}
\entry {list function definitions, in debugger}{313}
\entry {loading, library}{30}
\entry {local variables, in a function}{187}
\entry {locale categories}{294}
\entry {locale decimal point character}{31}
\entry {locale, definition of}{118}
\entry {localization}{293}
\entry {localization, See internationalization\comma {} localization}{293}
\entry {log files, timestamps in}{176}
\entry {\code {log()} function}{160}
\entry {logarithm}{160}
\entry {logical false/true}{109}
\entry {logical operators, See Boolean expressions}{113}
\entry {login information}{221}
\entry {long options}{27}
\entry {loops}{127}
\entry {loops, \code {break} statement and}{130}
\entry {loops, \code {continue} statements and}{129}
\entry {loops, count for header, in a profile}{291}
\entry {loops, \code {do}-\code {while}}{128}
\entry {loops, exiting}{130}
\entry {loops, \code {for}, array scanning}{148}
\entry {loops, \code {for}, iterative}{128}
\entry {loops, See Also \code {while} statement}{127}
\entry {loops, \code {while}}{127}
\entry {\command {ls} utility}{22}
\entry {\code {lshift()} function (\command {gawk})}{181}
\entry {lvalues/rvalues}{106}
\initial {M}
\entry {\code {mail-list} file}{18}
\entry {mailing labels\comma {} printing}{259}
\entry {mailing list, GNITS}{10}
\entry {Malmberg, John}{10, 421}
\entry {mark parity}{208}
\entry {marked string extraction (internationalization)}{297}
\entry {marked strings\comma {} extracting}{297}
\entry {Marx, Groucho}{109}
\entry {match regexp in string}{164}
\entry {\code {match()} function}{164}
\entry {\code {match()} function, \code {RSTART}/\code {RLENGTH} variables}{164}
\entry {matching, expressions, See comparison expressions}{110}
\entry {matching, leftmost longest}{69}
\entry {matching, null strings}{173}
\entry {\command {mawk} utility}{44, 75, 105, 133, 422}
\entry {maximum precision supported by MPFR library}{141}
\entry {McPhee, Patrick}{404}
\entry {message object files}{294}
\entry {message object files, converting from portable object files}{300}
\entry {message object files, specifying directory of}{294, 295}
\entry {messages from extensions}{351}
\entry {metacharacters in regular expressions}{44}
\entry {metacharacters, escape sequences for}{44}
\entry {minimum precision supported by MPFR library}{141}
\entry {\code {mktime()} function (\command {gawk})}{177}
\entry {modifiers\comma {} in format specifiers}{86}
\entry {monetary information, localization}{294}
\entry {MPFR}{328}
\entry {\command {msgfmt} utility}{300}
\entry {multiple precision}{319}
\entry {multiple-line records}{69}
\initial {N}
\entry {\code {n} debugger command (alias for \code {next})}{310}
\entry {names, arrays/variables}{145, 202}
\entry {names, functions}{184, 202}
\entry {namespace issues}{145, 202}
\entry {namespace issues, functions}{184}
\entry {\command {nawk} utility}{4}
\entry {negative zero}{321}
\entry {NetBSD}{448}
\entry {networks, programming}{287}
\entry {networks, support for}{93}
\entry {newlines}{23, 31, 114}
\entry {newlines, as field separators}{61}
\entry {newlines, as record separators}{53}
\entry {newlines, in dynamic regexps}{52}
\entry {newlines, in regexp constants}{52}
\entry {newlines, printing}{81}
\entry {newlines, separating statements in actions}{125, 126}
\entry {\code {next} debugger command}{310}
\entry {\code {next file} statement}{398}
\entry {\code {next} statement}{115, 132}
\entry {\code {next} statement, \code {BEGIN}/\code {END} patterns and}{123}
\entry {\code {next} statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}{124}
\entry {\code {next} statement, user-defined functions and}{133}
\entry {\code {nextfile} statement}{133}
\entry {\code {nextfile} statement, \code {BEGIN}/\code {END} patterns and}{123}
\entry {\code {nextfile} statement, \code {BEGINFILE}/\code {ENDFILE} patterns and}{124}
\entry {\code {nextfile} statement, user-defined functions and}{133}
\entry {\code {nexti} debugger command}{310}
\entry {\code {NF} variable}{57, 139}
\entry {\code {NF} variable, decrementing}{60}
\entry {\code {ni} debugger command (alias for \code {nexti})}{310}
\entry {\code {noassign.awk} program}{216}
\entry {non-existent array elements}{147}
\entry {not Boolean-logic operator}{113}
\entry {\code {NR} variable}{53, 139}
\entry {\code {NR} variable, changing}{143}
\entry {null strings}{55, 62, 109, 437}
\entry {null strings in \command {gawk} arguments, quoting and}{17}
\entry {null strings, and deleting array elements}{152}
\entry {null strings, as array subscripts}{154}
\entry {null strings, converting numbers to strings}{101}
\entry {null strings, matching}{173}
\entry {number as string of bits}{183}
\entry {number of array elements}{164}
\entry {number sign (\code {#}), \code {#!} (executable scripts)}{15}
\entry {number sign (\code {#}), commenting}{16}
\entry {numbers, as array subscripts}{153}
\entry {numbers, as values of characters}{207}
\entry {numbers, Cliff random}{206}
\entry {numbers, converting}{101, 183}
\entry {numbers, converting, to strings}{135, 136}
\entry {numbers, floating-point}{319}
\entry {numbers, hexadecimal}{97}
\entry {numbers, octal}{97}
\entry {numbers, rounding}{206}
\entry {numeric constants}{97}
\entry {numeric functions}{159}
\entry {numeric, output format}{84}
\entry {numeric, strings}{110}
\initial {O}
\entry {\code {o} debugger command (alias for \code {option})}{314}
\entry {\command {oawk} utility}{4}
\entry {obsolete features}{39}
\entry {octal numbers}{97}
\entry {octal values\comma {} enabling interpretation of}{30}
\entry {\code {OFMT} variable}{84, 102, 136}
\entry {\code {OFMT} variable, POSIX \command {awk} and}{84}
\entry {\code {OFS} variable}{59, 83, 137}
\entry {OpenBSD}{448}
\entry {OpenSolaris}{422}
\entry {operating systems, BSD-based}{8}
\entry {operating systems, PC, \command {gawk} on}{415}
\entry {operating systems, PC\comma {} \command {gawk} on, installing}{413}
\entry {operating systems, porting \command {gawk} to}{427}
\entry {operating systems, See Also GNU/Linux\comma {} PC operating systems\comma {} Unix}{407}
\entry {operations, bitwise}{181}
\entry {operators, arithmetic}{103}
\entry {operators, assignment}{106}
\entry {operators, assignment, evaluation order}{107}
\entry {operators, Boolean, See Boolean expressions}{113}
\entry {operators, decrement/increment}{108}
\entry {operators, GNU-specific}{48}
\entry {operators, input/output}{73, 74, 75, 90, 91, 118}
\entry {operators, logical, See Boolean expressions}{113}
\entry {operators, precedence}{109, 117}
\entry {operators, relational, See operators\comma {} comparison}{110}
\entry {operators, short-circuit}{114}
\entry {operators, string}{104}
\entry {operators, string-matching}{41}
\entry {operators, string-matching, for buffers}{49}
\entry {operators, word-boundary (\command {gawk})}{49}
\entry {\code {option} debugger command}{314}
\entry {options, command-line}{27}
\entry {options, command-line, end of}{28}
\entry {options, command-line, invoking \command {awk}}{27}
\entry {options, command-line, processing}{216}
\entry {options, deprecated}{39}
\entry {options, long}{27}
\entry {options, printing list of}{30}
\entry {OR bitwise operation}{181}
\entry {or Boolean-logic operator}{113}
\entry {\code {or()} function (\command {gawk})}{181}
\entry {\code {ord()} extension function}{383}
\entry {\code {ord()} user-defined function}{207}
\entry {order of evaluation, concatenation}{105}
\entry {\code {ORS} variable}{83, 137}
\entry {output field separator, See \code {OFS} variable}{59}
\entry {output record separator, See \code {ORS} variable}{83}
\entry {output redirection}{90}
\entry {output wrapper}{349}
\entry {output, buffering}{173, 176}
\entry {output, duplicating into files}{246}
\entry {output, files\comma {} closing}{94}
\entry {output, format specifier\comma {} \code {OFMT}}{84}
\entry {output, formatted}{84}
\entry {output, pipes}{90}
\entry {output, printing, See printing}{81}
\entry {output, records}{83}
\entry {output, standard}{92}
\initial {P}
\entry {\code {p} debugger command (alias for \code {print})}{311}
\entry {P1003.1 POSIX standard}{445}
\entry {parent process ID of \command {gawk} process}{140}
\entry {parentheses \code {()}, in a profile}{291}
\entry {parentheses \code {()}, regexp operator}{45}
\entry {password file}{221}
\entry {\code {patsplit()} function (\command {gawk})}{166}
\entry {patterns}{119}
\entry {patterns, comparison expressions as}{120}
\entry {patterns, counts, in a profile}{291}
\entry {patterns, default}{20}
\entry {patterns, empty}{124}
\entry {patterns, expressions as}{119}
\entry {patterns, ranges in}{121}
\entry {patterns, regexp constants as}{120}
\entry {patterns, types of}{119}
\entry {\command {pawk} (profiling version of Brian Kernighan's \command {awk})}{422}
\entry {\code {pawk}, \command {awk}-like facilities for Python}{423}
\entry {PC operating systems, \command {gawk} on}{415}
\entry {PC operating systems\comma {} \command {gawk} on, installing}{413}
\entry {percent sign (\code {%}), \code {%} operator}{117}
\entry {percent sign (\code {%}), \code {%=} operator}{107, 118}
\entry {period (\code {.}), regexp operator}{45}
\entry {Perl}{430}
\entry {Peters, Arno}{404}
\entry {Peterson, Hal}{404}
\entry {pipe, closing}{94}
\entry {pipe, input}{74}
\entry {pipe, output}{90}
\entry {Pitts, Dave}{10, 421}
\entry {Plauger, P.J.\:}{201}
\entry {plug-in}{335}
\entry {plus sign (\code {+}), \code {+} operator}{117, 118}
\entry {plus sign (\code {+}), \code {++} operator}{108, 109, 117}
\entry {plus sign (\code {+}), \code {+=} operator}{107, 118}
\entry {plus sign (\code {+}), regexp operator}{45}
\entry {pointers to functions}{193}
\entry {portability}{43}
\entry {portability, \code {#!} (executable scripts)}{16}
\entry {portability, \code {**} operator and}{104}
\entry {portability, \code {**=} operator and}{108}
\entry {portability, \code {ARGV} variable}{16}
\entry {portability, backslash continuation and}{23}
\entry {portability, backslash in escape sequences}{44}
\entry {portability, \code {close()} function and}{95}
\entry {portability, data files as single record}{56}
\entry {portability, deleting array elements}{152}
\entry {portability, example programs}{201}
\entry {portability, functions\comma {} defining}{185}
\entry {portability, \command {gawk}}{427}
\entry {portability, \code {gettext} library and}{293}
\entry {portability, internationalization and}{298}
\entry {portability, \code {length()} function}{164}
\entry {portability, new \command {awk} vs.\: old \command {awk}}{102}
\entry {portability, \code {next} statement in user-defined functions}{191}
\entry {portability, \code {NF} variable\comma {} decrementing}{60}
\entry {portability, operators}{109}
\entry {portability, operators, not in POSIX \command {awk}}{118}
\entry {portability, \env {POSIXLY_CORRECT} environment variable}{33}
\entry {portability, \code {substr()} function}{169}
\entry {portable object files}{293, 297}
\entry {portable object files, converting to message object files}{300}
\entry {portable object files, generating}{29}
\entry {portable object template files}{293}
\entry {porting \command {gawk}}{427}
\entry {positional specifiers, \code {printf} statement}{86, 297}
\entry {positional specifiers, \code {printf} statement, mixing with regular formats}{298}
\entry {positive zero}{321}
\entry {POSIX \command {awk}}{5, 108}
\entry {POSIX \command {awk}, \code {**} operator and}{118}
\entry {POSIX \command {awk}, \code {**=} operator and}{108}
\entry {POSIX \command {awk}, \code {<} operator and}{73}
\entry {POSIX \command {awk}, \code {|} I/O operator and}{75}
\entry {POSIX \command {awk}, arithmetic operators and}{104}
\entry {POSIX \command {awk}, backslashes in string constants}{44}
\entry {POSIX \command {awk}, \code {BEGIN}/\code {END} patterns}{123}
\entry {POSIX \command {awk}, bracket expressions and}{47}
\entry {POSIX \command {awk}, bracket expressions and, character classes}{47, 48}
\entry {POSIX \command {awk}, \code {break} statement and}{131}
\entry {POSIX \command {awk}, changes in \command {awk} versions}{392}
\entry {POSIX \command {awk}, \code {continue} statement and}{132}
\entry {POSIX \command {awk}, \code {CONVFMT} variable and}{135}
\entry {POSIX \command {awk}, \code {date} utility and}{180}
\entry {POSIX \command {awk}, field separators and}{56, 65}
\entry {POSIX \command {awk}, \code {FS} variable and}{136}
\entry {POSIX \command {awk}, \code {function} keyword in}{185}
\entry {POSIX \command {awk}, functions and, \code {gsub()}/\code {sub()}}{171}
\entry {POSIX \command {awk}, functions and, \code {length()}}{164}
\entry {POSIX \command {awk}, GNU long options and}{27}
\entry {POSIX \command {awk}, interval expressions in}{46}
\entry {POSIX \command {awk}, \code {next}/\code {nextfile} statements and}{133}
\entry {POSIX \command {awk}, numeric strings and}{110}
\entry {POSIX \command {awk}, \code {OFMT} variable and}{84, 102}
\entry {POSIX \command {awk}, period (\code {.})\comma {} using}{45}
\entry {POSIX \command {awk}, \code {printf} format strings and}{88}
\entry {POSIX \command {awk}, regular expressions and}{46}
\entry {POSIX \command {awk}, timestamps and}{176}
\entry {POSIX mode}{31, 33}
\entry {POSIX, \command {awk} and}{3}
\entry {POSIX, \command {gawk} extensions not included in}{393}
\entry {POSIX, programs\comma {} implementing in \command {awk}}{233}
\entry {\env {POSIXLY_CORRECT} environment variable}{33}
\entry {\code {PREC} variable}{137, 329}
\entry {precedence}{109, 117}
\entry {precedence, regexp operators}{46}
\entry {\code {print} debugger command}{311}
\entry {\code {print} statement}{81}
\entry {\code {print} statement, \code {BEGIN}/\code {END} patterns and}{123}
\entry {\code {print} statement, commas, omitting}{82}
\entry {\code {print} statement, I/O operators in}{118}
\entry {\code {print} statement, line continuations and}{82}
\entry {\code {print} statement, \code {OFMT} variable and}{137}
\entry {\code {print} statement, See Also redirection\comma {} of output}{90}
\entry {\code {print} statement, \code {sprintf()} function and}{206}
\entry {print variables, in debugger}{311}
\entry {\code {printf} debugger command}{312}
\entry {\code {printf} statement}{81, 84}
\entry {\code {printf} statement, columns\comma {} aligning}{82}
\entry {\code {printf} statement, format-control characters}{85}
\entry {\code {printf} statement, I/O operators in}{118}
\entry {\code {printf} statement, modifiers}{86}
\entry {\code {printf} statement, positional specifiers}{86, 297}
\entry {\code {printf} statement, positional specifiers, mixing with regular formats}{298}
\entry {\code {printf} statement, See Also redirection\comma {} of output}{90}
\entry {\code {printf} statement, \code {sprintf()} function and}{206}
\entry {\code {printf} statement, syntax of}{84}
\entry {printing}{81}
\entry {printing messages from extensions}{351}
\entry {printing, list of options}{30}
\entry {printing, mailing labels}{259}
\entry {printing, unduplicated lines of text}{247}
\entry {printing, user information}{242}
\entry {private variables}{202}
\entry {process group idIDof \command {gawk} process}{140}
\entry {process ID of \command {gawk} process}{140}
\entry {processes, two-way communications with}{286}
\entry {processing data}{435}
\entry {\code {PROCINFO} array}{139, 177, 221}
\entry {\code {PROCINFO} array, and communications via ptys}{287}
\entry {\code {PROCINFO} array, and group membership}{225}
\entry {\code {PROCINFO} array, and user and group ID numbers}{242}
\entry {\code {PROCINFO} array, testing the field splitting}{224}
\entry {\code {PROCINFO} array, uses}{141}
\entry {\code {PROCINFO}, values of \code {sorted_in}}{150}
\entry {profiling \command {awk} programs}{289}
\entry {profiling \command {awk} programs, dynamically}{291}
\entry {program identifiers}{140}
\entry {program, definition of}{13}
\entry {programmers, attractiveness of}{285}
\entry {programming conventions, \code {--non-decimal-data} option}{279}
\entry {programming conventions, \code {ARGC}/\code {ARGV} variables}{138}
\entry {programming conventions, \code {exit} statement}{134}
\entry {programming conventions, function parameters}{191}
\entry {programming conventions, functions, calling}{159}
\entry {programming conventions, functions, writing}{185}
\entry {programming conventions, \command {gawk} extensions}{371}
\entry {programming conventions, private variable names}{202}
\entry {programming language, recipe for}{4}
\entry {programming languages, Ada}{439}
\entry {programming languages, Java}{444}
\entry {programming languages\comma {} data-driven vs.\: procedural}{13}
\entry {programming, basic steps}{435}
\entry {programming, concepts}{435}
\entry {\command {pwcat} program}{221}
\initial {Q}
\entry {\code {q} debugger command (alias for \code {quit})}{316}
\entry {QSE Awk}{423}
\entry {Quanstrom, Erik}{254}
\entry {question mark (\code {?}), \code {?:} operator}{118}
\entry {question mark (\code {?}), regexp operator}{46, 49}
\entry {QuikTrim Awk}{423}
\entry {\code {quit} debugger command}{316}
\entry {\code {QUIT} signal (MS-Windows)}{292}
\entry {quoting in \command {gawk} command lines}{15}
\entry {quoting in \command {gawk} command lines, tricks for}{17}
\entry {quoting, for small awk programs}{16}
\initial {R}
\entry {\code {r} debugger command (alias for \code {run})}{311}
\entry {Rakitzis, Byron}{262}
\entry {Ramey, Chet}{10, 339}
\entry {\code {rand()} function}{160}
\entry {random numbers, Cliff}{206}
\entry {random numbers, \code {rand()}/\code {srand()} functions}{160}
\entry {random numbers, seed of}{160}
\entry {range expressions (regexps)}{47}
\entry {range patterns}{121}
\entry {range patterns, line continuation and}{122}
\entry {Rankin, Pat}{10, 107, 404, 421}
\entry {\code {reada()} extension function}{385}
\entry {readable data files\comma {} checking}{214}
\entry {\code {readable.awk} program}{214}
\entry {\code {readdir} extension}{384}
\entry {\code {readfile()} extension function}{386}
\entry {\code {readfile()} user-defined function}{211}
\entry {reading input files}{53}
\entry {recipe for a programming language}{4}
\entry {record separators}{53, 137}
\entry {record separators, changing}{54}
\entry {record separators, regular expressions as}{55}
\entry {record separators, with multiline records}{69}
\entry {records}{53, 436}
\entry {records, multiline}{69}
\entry {records, printing}{81}
\entry {records, splitting input into}{53}
\entry {records, terminating}{55}
\entry {records, treating files as}{56}
\entry {recursive functions}{185}
\entry {redirect \command {gawk} output, in debugger}{314}
\entry {redirection of input}{73}
\entry {redirection of output}{90}
\entry {reference counting, sorting arrays}{285}
\entry {regexp}{41}
\entry {regexp constants}{42, 98, 113}
\entry {regexp constants, \code {/=\dots {}/}, \code {/=} operator and}{108}
\entry {regexp constants, as patterns}{120}
\entry {regexp constants, in \command {gawk}}{99}
\entry {regexp constants, slashes vs.\: quotes}{51}
\entry {regexp constants, vs.\: string constants}{51}
\entry {register extension}{344}
\entry {regular expressions}{41}
\entry {regular expressions as field separators}{61}
\entry {regular expressions, anchors in}{44}
\entry {regular expressions, as field separators}{61}
\entry {regular expressions, as patterns}{41, 119}
\entry {regular expressions, as record separators}{55}
\entry {regular expressions, case sensitivity}{49, 136}
\entry {regular expressions, computed}{51}
\entry {regular expressions, constants, See regexp constants}{42}
\entry {regular expressions, dynamic}{51}
\entry {regular expressions, dynamic, with embedded newlines}{52}
\entry {regular expressions, \command {gawk}, command-line options}{49}
\entry {regular expressions, interval expressions and}{32}
\entry {regular expressions, leftmost longest match}{50}
\entry {regular expressions, operators}{41, 44}
\entry {regular expressions, operators, for buffers}{49}
\entry {regular expressions, operators, for words}{48}
\entry {regular expressions, operators, \command {gawk}}{48}
\entry {regular expressions, operators, precedence of}{46}
\entry {regular expressions, searching for}{238}
\entry {relational operators, See comparison operators}{110}
\entry {replace in string}{168}
\entry {\code {return} debugger command}{310}
\entry {\code {return} statement\comma {} user-defined functions}{191}
\entry {return value\comma {} \code {close()} function}{96}
\entry {\code {rev()} user-defined function}{186}
\entry {\code {revoutput} extension}{384}
\entry {\code {revtwoway} extension}{385}
\entry {\code {rewind()} user-defined function}{214}
\entry {right angle bracket (\code {>}), \code {>} operator}{111, 118}
\entry {right angle bracket (\code {>}), \code {>} operator (I/O)}{90}
\entry {right angle bracket (\code {>}), \code {>=} operator}{111, 118}
\entry {right angle bracket (\code {>}), \code {>>} operator (I/O)}{90, 118}
\entry {right shift}{182}
\entry {right shift, bitwise}{181}
\entry {Ritchie, Dennis}{437}
\entry {\code {RLENGTH} variable}{141}
\entry {\code {RLENGTH} variable, \code {match()} function and}{164}
\entry {Robbins, Arnold}{64, 75, 223, 254, 339, 405, 420, 430}
\entry {Robbins, Bill}{75}
\entry {Robbins, Harry}{10}
\entry {Robbins, Jean}{10}
\entry {Robbins, Miriam}{10, 75, 223}
\entry {Rommel, Kai Uwe}{404}
\entry {round to nearest integer}{160}
\entry {\code {round()} user-defined function}{206}
\entry {rounding mode, floating-point}{326}
\entry {rounding numbers}{206}
\entry {\code {ROUNDMODE} variable}{137, 330}
\entry {\code {RS} variable}{53, 137}
\entry {\code {RS} variable, multiline records and}{69}
\entry {\code {rshift()} function (\command {gawk})}{182}
\entry {\code {RSTART} variable}{141}
\entry {\code {RSTART} variable, \code {match()} function and}{164}
\entry {\code {RT} variable}{55, 71, 142}
\entry {Rubin, Paul}{4, 403}
\entry {rule, definition of}{13}
\entry {\code {run} debugger command}{311}
\entry {rvalues/lvalues}{106}
\initial {S}
\entry {\code {s} debugger command (alias for \code {step})}{311}
\entry {sample debugging session}{304}
\entry {sandbox mode}{32}
\entry {save debugger options}{314}
\entry {scalar or array}{183}
\entry {scalar values}{436}
\entry {scanning arrays}{148}
\entry {scanning multidimensional arrays}{155}
\entry {Schorr, Andrew}{10, 405}
\entry {Schreiber, Bert}{10}
\entry {Schreiber, Rita}{10}
\entry {search and replace in strings}{162}
\entry {search in string}{163}
\entry {search paths}{274, 415, 419}
\entry {search paths, for shared libraries}{35}
\entry {search paths, for source files}{34, 274, 415, 419}
\entry {searching, files for regular expressions}{238}
\entry {searching, for words}{253}
\entry {\command {sed} utility}{65, 266, 439}
\entry {seeding random number generator}{160}
\entry {semicolon (\code {;}), \code {AWKPATH} variable and}{415}
\entry {semicolon (\code {;}), separating statements in actions}{24, 125, 126}
\entry {separators, field}{135, 137}
\entry {separators, field, \code {FIELDWIDTHS} variable and}{135}
\entry {separators, field, \code {FPAT} variable and}{135}
\entry {separators, field, POSIX and}{56}
\entry {separators, for records}{53, 54, 137}
\entry {separators, for records, regular expressions as}{55}
\entry {separators, for statements in actions}{125}
\entry {separators, subscript}{137}
\entry {set breakpoint}{308}
\entry {\code {set} debugger command}{312}
\entry {set directory of message catalogs}{183}
\entry {set watchpoint}{312}
\entry {setting rounding mode}{330}
\entry {setting working precision}{329}
\entry {shadowing of variable values}{185}
\entry {shell quoting, double quote}{14}
\entry {shell quoting, rules for}{17}
\entry {shells, piping commands into}{92}
\entry {shells, quoting}{124}
\entry {shells, quoting, rules for}{17}
\entry {shells, scripts}{13}
\entry {shells, sea}{39}
\entry {shells, variables}{124}
\entry {shift, bitwise}{181}
\entry {short-circuit operators}{114}
\entry {show all source files, in debugger}{313}
\entry {show breakpoints}{313}
\entry {show function arguments, in debugger}{313}
\entry {show local variables, in debugger}{313}
\entry {show name of current source file, in debugger}{313}
\entry {show watchpoints}{313}
\entry {\code {si} debugger command (alias for \code {stepi})}{311}
\entry {side effects}{105, 108, 109}
\entry {side effects, array indexing}{147}
\entry {side effects, \code {asort()} function}{284}
\entry {side effects, assignment expressions}{106}
\entry {side effects, Boolean operators}{114}
\entry {side effects, conditional expressions}{115}
\entry {side effects, decrement/increment operators}{108}
\entry {side effects, \code {FILENAME} variable}{76}
\entry {side effects, function calls}{116}
\entry {side effects, statements}{126}
\entry {sidebar, A Constant's Base Does Not Affect Its Value}{98}
\entry {sidebar, Backslash Before Regular Characters}{44}
\entry {sidebar, Changing \code {FS} Does Not Affect the Fields}{65}
\entry {sidebar, Changing \code {NR} and \code {FNR}}{143}
\entry {sidebar, Controlling Output Buffering with \code {system()}}{175}
\entry {sidebar, Escape Sequences for Metacharacters}{44}
\entry {sidebar, \code {FS} and \code {IGNORECASE}}{65}
\entry {sidebar, Interactive Versus Noninteractive Buffering}{175}
\entry {sidebar, Matching the Null String}{173}
\entry {sidebar, Operator Evaluation Order}{109}
\entry {sidebar, Piping into \command {sh}}{92}
\entry {sidebar, Portability Issues with \samp {#!}}{15}
\entry {sidebar, Recipe For A Programming Language}{4}
\entry {sidebar, \code {RS = "{\tt \backslashcurfont }0"} Is Not Portable}{56}
\entry {sidebar, So Why Does \command {gawk} have \code {BEGINFILE} and \code {ENDFILE}?}{213}
\entry {sidebar, Syntactic Ambiguities Between \samp {/=} and Regular Expressions}{108}
\entry {sidebar, Understanding \code {$0}}{60}
\entry {sidebar, Using \code {{\tt \backslashcurfont }n} in Bracket Expressions of Dynamic Regexps}{52}
\entry {sidebar, Using \code {close()}'s Return Value}{96}
\entry {\code {SIGHUP} signal, for dynamic profiling}{292}
\entry {\code {SIGINT} signal (MS-Windows)}{292}
\entry {signals, \code {HUP}/\code {SIGHUP}, for profiling}{292}
\entry {signals, \code {INT}/\code {SIGINT} (MS-Windows)}{292}
\entry {signals, \code {QUIT}/\code {SIGQUIT} (MS-Windows)}{292}
\entry {signals, \code {USR1}/\code {SIGUSR1}, for profiling}{292}
\entry {signature program}{276}
\entry {\code {SIGQUIT} signal (MS-Windows)}{292}
\entry {\code {SIGUSR1} signal, for dynamic profiling}{292}
\entry {\code {silent} debugger command}{310}
\entry {\code {sin()} function}{161}
\entry {sine}{161}
\entry {single precision floating-point}{319}
\entry {single quote (\code {'})}{13}
\entry {single quote (\code {'}) in \command {gawk} command lines}{15}
\entry {single quote (\code {'}), in shell commands}{17}
\entry {single quote (\code {'}), vs.\: apostrophe}{16}
\entry {single quote (\code {'}), with double quotes}{17}
\entry {single-character fields}{63}
\entry {single-step execution, in the debugger}{310}
\entry {Skywalker, Luke}{39}
\entry {\command {sleep} utility}{256}
\entry {\code {sleep()} extension function}{386}
\entry {Solaris, POSIX-compliant \command {awk}}{422}
\entry {sort array}{161}
\entry {sort array indices}{161}
\entry {sort function, arrays, sorting}{284}
\entry {\command {sort} utility}{261}
\entry {\command {sort} utility, coprocesses and}{287}
\entry {sorting characters in different languages}{294}
\entry {source code, \command {awka}}{422}
\entry {source code, Brian Kernighan's \command {awk}}{421}
\entry {source code, Busybox Awk}{422}
\entry {source code, \command {gawk}}{407}
\entry {source code, Illumos \command {awk}}{423}
\entry {source code, \command {jawk}}{423}
\entry {source code, libmawk}{423}
\entry {source code, \command {mawk}}{422}
\entry {source code, mixing}{29}
\entry {source code, \command {pawk}}{422}
\entry {source code, \command {pawk} (Python version)}{423}
\entry {source code, QSE Awk}{423}
\entry {source code, QuikTrim Awk}{423}
\entry {source code, Solaris \command {awk}}{422}
\entry {source files\comma {} search path for}{274}
\entry {sparse arrays}{146}
\entry {Spencer, Henry}{439}
\entry {split string into array}{166}
\entry {\code {split} utility}{244}
\entry {\code {split()} function}{166}
\entry {\code {split()} function, array elements\comma {} deleting}{152}
\entry {\code {split.awk} program}{244}
\entry {\code {sprintf()} function}{84, 167}
\entry {\code {sprintf()} function, \code {OFMT} variable and}{137}
\entry {\code {sprintf()} function, \code {print}/\code {printf} statements and}{206}
\entry {\code {sqrt()} function}{161}
\entry {square brackets (\code {[]}), regexp operator}{45}
\entry {square root}{161}
\entry {\code {srand()} function}{161}
\entry {stack frame}{303}
\entry {Stallman, Richard}{8, 9, 403, 443}
\entry {standard error}{92}
\entry {standard input}{14, 92}
\entry {standard output}{92}
\entry {starting the debugger}{305}
\entry {\code {stat()} extension function}{378}
\entry {statements, compound\comma {} control statements and}{126}
\entry {statements, control, in actions}{126}
\entry {statements, multiple}{24}
\entry {\code {step} debugger command}{311}
\entry {\code {stepi} debugger command}{311}
\entry {stop automatic display, in debugger}{312}
\entry {stream editors}{65, 266}
\entry {\code {strftime()} function (\command {gawk})}{177}
\entry {string constants}{97}
\entry {string constants, vs.\: regexp constants}{51}
\entry {string extraction (internationalization)}{297}
\entry {string length}{164}
\entry {string operators}{104}
\entry {string, regular expression match}{164}
\entry {string-manipulation functions}{161}
\entry {string-matching operators}{41}
\entry {string-translation functions}{183}
\entry {strings splitting, example}{166}
\entry {strings, converting}{101, 183}
\entry {strings, converting letter case}{169}
\entry {strings, converting, numbers to}{135, 136}
\entry {strings, empty, See null strings}{55}
\entry {strings, extracting}{297}
\entry {strings, for localization}{295}
\entry {strings, length limitations}{97}
\entry {strings, merging arrays into}{209}
\entry {strings, null}{62}
\entry {strings, numeric}{110}
\entry {\code {strtonum()} function (\command {gawk})}{167}
\entry {\code {strtonum()} function (\command {gawk}), \code {--non-decimal-data} option and}{279}
\entry {\code {sub()} function}{99, 168}
\entry {\code {sub()} function, arguments of}{169}
\entry {\code {sub()} function, escape processing}{170}
\entry {subscript separators}{137}
\entry {subscripts in arrays, multidimensional}{154}
\entry {subscripts in arrays, multidimensional, scanning}{155}
\entry {subscripts in arrays, numbers as}{153}
\entry {subscripts in arrays, uninitialized variables as}{153}
\entry {\code {SUBSEP} variable}{137}
\entry {\code {SUBSEP} variable, and multidimensional arrays}{154}
\entry {substitute in string}{162}
\entry {\code {substr()} function}{169}
\entry {substring}{169}
\entry {Sumner, Andrew}{422}
\entry {supplementary groups of \command {gawk} process}{141}
\entry {\code {switch} statement}{129}
\entry {\code {SYMTAB} array}{142}
\entry {syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}{108}
\entry {\code {system()} function}{174}
\entry {\code {systime()} function (\command {gawk})}{177}
\initial {T}
\entry {\code {t} debugger command (alias for \code {tbreak})}{310}
\entry {\code {tbreak} debugger command}{310}
\entry {Tcl}{202}
\entry {TCP/IP}{287}
\entry {TCP/IP, support for}{93}
\entry {\code {tee} utility}{246}
\entry {\code {tee.awk} program}{246}
\entry {temporary breakpoint}{310}
\entry {terminating records}{55}
\entry {\code {testbits.awk} program}{182}
\entry {\code {testext} extension}{386}
\entry {Texinfo}{7, 201, 253, 263, 409, 427}
\entry {Texinfo, chapter beginnings in files}{44}
\entry {Texinfo, extracting programs from source files}{263}
\entry {text, printing}{81}
\entry {text\comma {} printing, unduplicated lines of}{247}
\entry {\code {TEXTDOMAIN} variable}{137, 295}
\entry {\code {TEXTDOMAIN} variable, \code {BEGIN} pattern and}{296}
\entry {\code {TEXTDOMAIN} variable, portability and}{298}
\entry {\code {textdomain()} function (C library)}{293}
\entry {tilde (\code {~}), \code {~} operator}{41, 50, 51, 98, 111, 113, 118, 120}
\entry {time functions}{176}
\entry {time, alarm clock example program}{254}
\entry {time, localization and}{295}
\entry {time, managing}{209}
\entry {time, retrieving}{176}
\entry {timeout, reading input}{77}
\entry {timestamps}{176, 177}
\entry {timestamps, converting dates to}{177}
\entry {timestamps, formatted}{209}
\entry {\code {tolower()} function}{170}
\entry {\code {toupper()} function}{170}
\entry {\command {tr} utility}{257}
\entry {\code {trace} debugger command}{316}
\entry {traceback, display in debugger}{312}
\entry {translate string}{183}
\entry {\code {translate.awk} program}{257}
\entry {treating files, as single records}{56}
\entry {troubleshooting, \code {--non-decimal-data} option}{30}
\entry {troubleshooting, \code {==} operator}{112}
\entry {troubleshooting, \command {awk} uses \code {FS} not \code {IFS}}{61}
\entry {troubleshooting, backslash before nonspecial character}{44}
\entry {troubleshooting, division}{104}
\entry {troubleshooting, fatal errors, field widths\comma {} specifying}{66}
\entry {troubleshooting, fatal errors, \code {printf} format strings}{88}
\entry {troubleshooting, \code {fflush()} function}{174}
\entry {troubleshooting, function call syntax}{116}
\entry {troubleshooting, \command {gawk}}{425}
\entry {troubleshooting, \command {gawk}, bug reports}{420}
\entry {troubleshooting, \command {gawk}, fatal errors\comma {} function arguments}{159}
\entry {troubleshooting, \code {getline} function}{215}
\entry {troubleshooting, \code {gsub()}/\code {sub()} functions}{169}
\entry {troubleshooting, \code {match()} function}{166}
\entry {troubleshooting, \code {patsplit()} function}{166}
\entry {troubleshooting, \code {print} statement\comma {} omitting commas}{82}
\entry {troubleshooting, printing}{91}
\entry {troubleshooting, quotes with file names}{93}
\entry {troubleshooting, readable data files}{214}
\entry {troubleshooting, regexp constants vs.\: string constants}{51}
\entry {troubleshooting, string concatenation}{105}
\entry {troubleshooting, \code {substr()} function}{169}
\entry {troubleshooting, \code {system()} function}{174}
\entry {troubleshooting, typographical errors\comma {} global variables}{29}
\entry {true, logical}{109}
\entry {Trueman, David}{4, 10, 403}
\entry {trunc-mod operation}{104}
\entry {truth values}{109}
\entry {type conversion}{101}
\initial {U}
\entry {\code {u} debugger command (alias for \code {until})}{311}
\entry {unassigned array elements}{147}
\entry {undefined functions}{190}
\entry {underscore (\code {_}), C macro}{294}
\entry {underscore (\code {_}), in names of private variables}{202}
\entry {underscore (\code {_}), translatable string}{296}
\entry {\code {undisplay} debugger command}{312}
\entry {undocumented features}{39}
\entry {Unicode}{208, 402, 440}
\entry {uninitialized variables, as array subscripts}{153}
\entry {\command {uniq} utility}{247}
\entry {\code {uniq.awk} program}{248}
\entry {Unix}{448}
\entry {Unix \command {awk}, backslashes in escape sequences}{44}
\entry {Unix \command {awk}, \code {close()} function and}{96}
\entry {Unix \command {awk}, password files\comma {} field separators and}{64}
\entry {Unix, \command {awk} scripts and}{15}
\entry {\code {UNIXROOT} variable, on OS/2 systems}{415}
\entry {unsigned integers}{319}
\entry {\code {until} debugger command}{311}
\entry {\code {unwatch} debugger command}{312}
\entry {\code {up} debugger command}{313}
\entry {user database\comma {} reading}{221}
\entry {user-defined functions}{184}
\entry {user-defined, functions, counts, in a profile}{291}
\entry {user-defined, variables}{100}
\entry {user-modifiable variables}{135}
\entry {users, information about, printing}{242}
\entry {users, information about, retrieving}{221}
\entry {\code {USR1} signal, for dynamic profiling}{292}
\initial {V}
\entry {values, numeric}{436}
\entry {values, string}{436}
\entry {variable assignments and input files}{33}
\entry {variable typing}{110}
\entry {variables}{24, 436}
\entry {variables, assigning on command line}{100}
\entry {variables, built-in}{100, 134}
\entry {variables, built-in, \code {-v} option\comma {} setting with}{28}
\entry {variables, built-in, conveying information}{137}
\entry {variables, flag}{114}
\entry {variables, \code {getline} command into\comma {} using}{72, 73, 75, 76}
\entry {variables, global, for library functions}{202}
\entry {variables, global, printing list of}{29}
\entry {variables, initializing}{100}
\entry {variables, local to a function}{187}
\entry {variables, names of}{145}
\entry {variables, private}{202}
\entry {variables, setting}{28}
\entry {variables, shadowing}{185}
\entry {variables, types of}{106}
\entry {variables, types of, comparison expressions and}{110}
\entry {variables, uninitialized\comma {} as array subscripts}{153}
\entry {variables, user-defined}{100}
\entry {version of \command {gawk}}{141}
\entry {version of \command {gawk} extension API}{141}
\entry {version of GNU MP library}{141}
\entry {version of GNU MPFR library}{141}
\entry {vertical bar (\code {|})}{45}
\entry {vertical bar (\code {|}), \code {|} operator (I/O)}{74, 118}
\entry {vertical bar (\code {|}), \code {|&} operator (I/O)}{75, 118, 286}
\entry {vertical bar (\code {|}), \code {||} operator}{114, 118}
\entry {Vinschen, Corinna}{10}
\initial {W}
\entry {\code {w} debugger command (alias for \code {watch})}{312}
\entry {\command {w} utility}{66}
\entry {\code {wait()} extension function}{382}
\entry {\code {waitpid()} extension function}{382}
\entry {\code {walk_array()} user-defined function}{230}
\entry {Wall, Larry}{145, 430}
\entry {Wallin, Anders}{404}
\entry {warnings, issuing}{30}
\entry {\code {watch} debugger command}{312}
\entry {watchpoint}{304}
\entry {\command {wc} utility}{251}
\entry {\code {wc.awk} program}{251}
\entry {Weinberger, Peter}{4, 403}
\entry {\code {while} statement}{127}
\entry {\code {while} statement, use of regexps in}{41}
\entry {whitespace, as field separators}{61}
\entry {whitespace, functions\comma {} calling}{159}
\entry {whitespace, newlines as}{31}
\entry {Williams, Kent}{404}
\entry {Woehlke, Matthew}{404}
\entry {Woods, John}{403}
\entry {word boundaries\comma {} matching}{48}
\entry {word, regexp definition of}{48}
\entry {word-boundary operator (\command {gawk})}{49}
\entry {\code {wordfreq.awk} program}{261}
\entry {words, counting}{251}
\entry {words, duplicate\comma {} searching for}{253}
\entry {words, usage counts\comma {} generating}{261}
\entry {\code {writea()} extension function}{385}
\initial {X}
\entry {\code {xgettext} utility}{297}
\entry {XOR bitwise operation}{181}
\entry {\code {xor()} function (\command {gawk})}{182}
\initial {Y}
\entry {Yawitz, Efraim}{405}
\initial {Z}
\entry {Zaretskii, Eli}{10, 404, 421}
\entry {zero\comma {} negative vs.\: positive}{321}
\entry {\code {zerofile.awk} program}{215}
\entry {Zoulas, Christos}{404}