\initial {!}
\entry {\code {!} (exclamation point), \code {!} operator}{88, 91, 218}
\entry {\code {!} (exclamation point), \code {!=} operator}{86, 91}
\entry {\code {!} (exclamation point), \code {!~} operator}{24, 32, 34, 74, 86, 87, 91, 94}
\entry {\code {!} operator}{95, 218}
\initial {"}
\entry {\code {"} (double quote)}{12, 15}
\entry {\code {"} (double quote), regexp constants}{34}
\initial {#}
\entry {\code {#} (number sign), \code {#!} (executable scripts)}{13}
\entry {\code {#} (number sign), \code {#!} (executable scripts), portability issues with}{13}
\entry {\code {#} (number sign), commenting}{14}
\initial {$}
\entry {\code {$} (dollar sign)}{27}
\entry {\code {$} (dollar sign), \code {$} field operator}{39, 91}
\entry {\code {$} (dollar sign), incrementing fields and arrays}{84}
\entry {\code {$} field operator}{39}
\initial {%}
\entry {\code {%} (percent sign), \code {%} operator}{91}
\entry {\code {%} (percent sign), \code {%=} operator}{83, 92}
\initial {&}
\entry {\code {&} (ampersand), \code {&&} operator}{88, 91}
\entry {\code {&} (ampersand), \code {gsub}/\code {gensub}/\code {sub} functions and}{136}
\initial {'}
\entry {\code {'} (single quote)}{11, 13, 15}
\entry {\code {'} (single quote), vs. apostrophe}{14}
\entry {\code {'} (single quote), with double quotes}{15}
\initial {(}
\entry {\code {()} (parentheses)}{28}
\entry {\code {()} (parentheses), \command {pgawk} program}{171}
\initial {*}
\entry {\code {*} (asterisk), \code {*} operator, as multiplication operator}{91}
\entry {\code {*} (asterisk), \code {*} operator, as regexp operator}{28}
\entry {\code {*} (asterisk), \code {*} operator, null strings\comma {} matching}{139}
\entry {\code {*} (asterisk), \code {**} operator}{80, 91, 176}
\entry {\code {*} (asterisk), \code {**=} operator}{83, 92, 176}
\entry {\code {*} (asterisk), \code {*=} operator}{83, 92}
\initial {+}
\entry {\code {+} (plus sign)}{28}
\entry {\code {+} (plus sign), \code {+} operator}{91}
\entry {\code {+} (plus sign), \code {++} operator}{84, 91}
\entry {\code {+} (plus sign), \code {+=} operator}{82, 92}
\entry {\code {+} (plus sign), decrement/increment operators}{83}
\initial {,}
\entry {\code {,} (comma), in range patterns}{95}
\initial {-}
\entry {\code {-} (hyphen), \code {-} operator}{91}
\entry {\code {-} (hyphen), \code {--} (decrement/increment) operator}{91}
\entry {\code {-} (hyphen), \code {--} operator}{84}
\entry {\code {-} (hyphen), \code {-=} operator}{83, 92}
\entry {\code {-} (hyphen), filenames beginning with}{174}
\entry {\code {-} (hyphen), in character lists}{29}
\entry {\code {--assign} option}{174}
\entry {\code {--compat} option}{174}
\entry {\code {--copyleft} option}{175}
\entry {\code {--copyright} option}{174}
\entry {\code {--disable-lint} configuration option}{264}
\entry {\code {--disable-nls} configuration option}{265}
\entry {\code {--dump-variables} option}{175, 182}
\entry {\code {--enable-portals} configuration option}{169, 264}
\entry {\code {--enable-switch} configuration option}{264}
\entry {\code {--field-separator} option}{173}
\entry {\code {--file} option}{173}
\entry {\code {--gen-po} option}{160, 175}
\entry {\code {--help} option}{175}
\entry {\code {--lint} option}{173, 175}
\entry {\code {--lint-old} option}{175}
\entry {\code {--non-decimal-data} option}{165, 175}
\entry {\code {--non-decimal-data} option, \code {strtonum} function and}{165}
\entry {\code {--posix} option}{176}
\entry {\code {--posix} option, \code {--traditional} option and}{176}
\entry {\code {--profile} option}{169, 176}
\entry {\code {--re-interval} option}{176}
\entry {\code {--source} option}{176, 177}
\entry {\code {--traditional} option}{174}
\entry {\code {--traditional} option, \code {--posix} option and}{176}
\entry {\code {--usage} option}{175}
\entry {\code {--version} option}{177}
\entry {\code {--with-included-gettext} configuration option}{164, 264}
\entry {\code {--with-included-gettext} configuration option, configuring \command {gawk} with}{264}
\entry {\code {-f} option}{12, 173}
\entry {\code {-F} option}{45, 173}
\entry {\code {-F} option, \code {-Ft} sets \code {FS} to TAB}{177}
\entry {\code {-f} option, on command line}{177}
\entry {\code {-F} option, troubleshooting}{180}
\entry {\code {-mf}/\code {-mr} options}{174}
\entry {\code {-v} option}{174}
\entry {\code {-v} option, variables\comma {} assigning}{76}
\entry {\code {-W} option}{174}
\initial {.}
\entry {\code {.} (period)}{27}
\entry {\code {.mo} files}{157}
\entry {\code {.mo} files, converting from \code {.po}}{163}
\entry {\code {.mo} files, specifying directory of}{157, 158}
\entry {\code {.po} files}{156, 159}
\entry {\code {.po} files, converting to \code {.mo}}{163}
\initial {/}
\entry {\code {/} (forward slash)}{24}
\entry {\code {/} (forward slash), \code {/} operator}{91}
\entry {\code {/} (forward slash), \code {/=} operator}{83, 92}
\entry {\code {/} (forward slash), \code {/=} operator, vs. \code {/=\dots {}/} regexp constant}{83}
\entry {\code {/} (forward slash), patterns and}{94}
\entry {\code {/=} operator vs. \code {/=\dots {}/} regexp constant}{83}
\entry {\code {/dev/\dots {}} special files (\command {gawk})}{68}
\entry {\code {/inet/} files (\command {gawk})}{168}
\entry {\code {/p} files (\command {gawk})}{169}
\initial {;}
\entry {\code {;} (semicolon)}{22}
\entry {\code {;} (semicolon), \code {AWKPATH} variable and}{270}
\entry {\code {;} (semicolon), separating statements in actions}{98, 99}
\initial {<}
\entry {\code {<} (left angle bracket), \code {<} operator}{86, 91}
\entry {\code {<} (left angle bracket), \code {<} operator (I/O)}{53}
\entry {\code {<} (left angle bracket), \code {<=} operator}{86, 91}
\initial {=}
\entry {\code {=} (equals sign), \code {=} operator}{81}
\entry {\code {=} (equals sign), \code {==} operator}{86, 91}
\initial {>}
\entry {\code {>} (right angle bracket), \code {>} operator}{86, 91}
\entry {\code {>} (right angle bracket), \code {>} operator (I/O)}{65}
\entry {\code {>} (right angle bracket), \code {>=} operator}{86, 91}
\entry {\code {>} (right angle bracket), \code {>>} operator (I/O)}{66, 91}
\initial {?}
\entry {\code {?} (question mark)}{28, 31}
\entry {\code {?} (question mark), \code {?:} operator}{92}
\initial {[}
\entry {\code {[]} (square brackets)}{27}
\initial {^}
\entry {\code {^} (caret)}{27, 31}
\entry {\code {^} (caret), \code {^} operator}{91, 176}
\entry {\code {^} (caret), \code {^=} operator}{83, 92, 176}
\entry {\code {^} (caret), in character lists}{29}
\initial {_}
\entry {\code {_} (underscore), \code {_} C macro}{157}
\entry {\code {_} (underscore), in names of private variables}{182}
\entry {\code {_} (underscore), translatable string}{159}
\entry {\code {_gr_init} user-defined function}{206}
\entry {\code {_pw_init} user-defined function}{203}
\initial {{\tt \char 123}}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), actions and}{98}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), \command {pgawk} program}{171}
\entry {\code {{\tt \char 123}{\tt \char 125}} (braces), statements, grouping}{99}
\initial {{\tt \indexbackslash }}
\entry {\code {{\tt \backslashcurfont }} (backslash)}{12, 14, 15, 27}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }"} escape sequence}{26}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }'} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }/} escape sequence}{26}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }<} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }>} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }`} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }a} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }b} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }B} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }f} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }n} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }}\var {nnn} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }r} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }t} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }v} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }w} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }W} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }x} escape sequence}{25}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {{\tt \backslashcurfont }y} operator (\command {gawk})}{31}
\entry {\code {{\tt \backslashcurfont }} (backslash), as field separators}{45}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and}{21, 219}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, comments and}{22}
\entry {\code {{\tt \backslashcurfont }} (backslash), continuing lines and, in \command {csh}}{20, 21}
\entry {\code {{\tt \backslashcurfont }} (backslash), \code {gsub}/\code {gensub}/\code {sub} functions and}{136}
\entry {\code {{\tt \backslashcurfont }} (backslash), in character lists}{29}
\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences}{25, 26}
\entry {\code {{\tt \backslashcurfont }} (backslash), in escape sequences, POSIX and}{26}
\entry {\code {{\tt \backslashcurfont }} (backslash), regexp constants}{34}
\initial {|}
\entry {\code {|} (vertical bar)}{28}
\entry {\code {|} (vertical bar), \code {|} operator (I/O)}{54, 66, 91}
\entry {\code {|} (vertical bar), \code {|&} operator (I/O)}{55, 66, 91, 166}
\entry {\code {|} (vertical bar), \code {|&} operator (I/O), pipes\comma {} closing}{72}
\entry {\code {|} (vertical bar), \code {|&} operator (I/O), two-way communications}{169}
\entry {\code {|} (vertical bar), \code {||} operator}{88, 91}
\initial {~}
\entry {\code {~} (tilde), \code {~} operator}{32, 34, 74, 86, 87, 91, 94}
\initial {A}
\entry {accessing fields}{39}
\entry {account information}{201, 205}
\entry {actions}{98}
\entry {actions, control statements in}{99}
\entry {actions, default}{17}
\entry {actions, empty}{18}
\entry {adding, features to \command {gawk}}{279}
\entry {adding, fields}{41}
\entry {adding, functions to \command {gawk}}{282}
\entry {advanced features, buffering}{141, 142}
\entry {advanced features, \code {close} function}{72}
\entry {advanced features, constants\comma {} values of}{74}
\entry {advanced features, data files as single record}{38}
\entry {advanced features, fixed-width data}{47}
\entry {advanced features, \code {FNR}/\code {NR} variables}{113}
\entry {advanced features, \command {gawk}}{165}
\entry {advanced features, \command {gawk}, BSD portals}{169}
\entry {advanced features, \command {gawk}, network programming}{168}
\entry {advanced features, \command {gawk}, nondecimal input data}{165}
\entry {advanced features, \command {gawk}, processes\comma {} communicating with}{166}
\entry {advanced features, network connections, See Also networks, connections}{165}
\entry {advanced features, null strings\comma {} matching}{139}
\entry {advanced features, operators\comma {} precedence}{84}
\entry {advanced features, piping into \command {sh}}{67}
\entry {advanced features, regexp constants}{83}
\entry {Aho, Alfred}{4, 258}
\entry {alarm clock example program}{231}
\entry {\code {alarm.awk} program}{231}
\entry {algorithms}{295}
\entry {Alpha (DEC)}{7}
\entry {amazing \command {awk} assembler (\command {aaa})}{299}
\entry {amazingly workable formatter (\command {awf})}{299}
\entry {ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}{83}
\entry {amiga}{266}
\entry {ampersand (\code {&}), \code {&&} operator}{88}
\entry {ampersand (\code {&}), \code {&&}operator}{91}
\entry {ampersand (\code {&}), \code {gsub}/\code {gensub}/\code {sub} functions and}{136}
\entry {AND bitwise operation}{147}
\entry {and Boolean-logic operator}{88}
\entry {\code {and} function (\command {gawk})}{147}
\entry {ANSI}{299}
\entry {archeologists}{276}
\entry {\code {ARGC}/\code {ARGV} variables}{110, 113}
\entry {\code {ARGC}/\code {ARGV} variables, command-line arguments}{178}
\entry {\code {ARGC}/\code {ARGV} variables, portability and}{14}
\entry {\code {ARGIND} variable}{110}
\entry {\code {ARGIND} variable, command-line arguments}{178}
\entry {arguments, command-line}{110, 113, 178}
\entry {arguments, command-line, invoking \command {awk}}{173}
\entry {arguments, in function calls}{90}
\entry {arguments, processing}{196}
\entry {arguments, retrieving}{284}
\entry {arithmetic operators}{79}
\entry {arrays}{116}
\entry {arrays, as parameters to functions}{153}
\entry {arrays, associative}{116}
\entry {arrays, associative, clearing}{283}
\entry {arrays, associative, library functions and}{182}
\entry {arrays, deleting entire contents}{120}
\entry {arrays, elements, assigning}{118}
\entry {arrays, elements, deleting}{120}
\entry {arrays, elements, installing}{283}
\entry {arrays, elements, order of}{120}
\entry {arrays, elements, referencing}{117}
\entry {arrays, elements, retrieving number of}{129}
\entry {arrays, \code {for} statement and}{119}
\entry {arrays, \code {IGNORECASE} variable and}{117}
\entry {arrays, indexing}{116}
\entry {arrays, merging into strings}{190}
\entry {arrays, multidimensional}{122}
\entry {arrays, multidimensional, scanning}{124}
\entry {arrays, names of}{116}
\entry {arrays, scanning}{119}
\entry {arrays, sorting}{124}
\entry {arrays, sorting, \code {IGNORECASE} variable and}{126}
\entry {arrays, sparse}{117}
\entry {arrays, subscripts}{121}
\entry {arrays, subscripts, uninitialized variables as}{122}
\entry {artificial intelligence\comma {} \command {gawk} and}{261}
\entry {ASCII}{189}
\entry {\code {asort} function (\command {gawk})}{124, 129}
\entry {\code {asort} function (\command {gawk}), arrays\comma {} sorting}{124}
\entry {\code {asorti} function (\command {gawk})}{130}
\entry {\code {assert} function (C library)}{186}
\entry {\code {assert} user-defined function}{186}
\entry {assertions}{186}
\entry {assignment operators}{81}
\entry {assignment operators, evaluation order}{82}
\entry {assignment operators, lvalues/rvalues}{81}
\entry {assignments as filenames}{196}
\entry {\code {assoc_clear} internal function}{283}
\entry {\code {assoc_lookup} internal function}{283}
\entry {associative arrays}{116}
\entry {asterisk (\code {*}), \code {*} operator, as multiplication operator}{91}
\entry {asterisk (\code {*}), \code {*} operator, as regexp operator}{28}
\entry {asterisk (\code {*}), \code {*} operator, null strings\comma {} matching}{139}
\entry {asterisk (\code {*}), \code {**} operator}{80, 91, 176}
\entry {asterisk (\code {*}), \code {**=} operator}{83, 92, 176}
\entry {asterisk (\code {*}), \code {*=} operator}{83, 92}
\entry {\code {atan2} function}{128}
\entry {atari}{274}
\entry {\command {awf} (amazingly workable formatter) program}{299}
\entry {\command {awk} language, POSIX version}{83}
\entry {\command {awk} programs}{11, 13, 19}
\entry {\command {awk} programs, complex}{23}
\entry {\command {awk} programs, documenting}{14, 181}
\entry {\command {awk} programs, examples of}{210}
\entry {\command {awk} programs, execution of}{105}
\entry {\command {awk} programs, internationalizing}{149, 158}
\entry {\command {awk} programs, lengthy}{12}
\entry {\command {awk} programs, lengthy, assertions}{186}
\entry {\command {awk} programs, location of}{173}
\entry {\command {awk} programs, one-line examples}{18}
\entry {\command {awk} programs, profiling}{169}
\entry {\command {awk} programs, profiling, enabling}{176}
\entry {\command {awk} programs, running}{11, 12}
\entry {\command {awk} programs, running, from shell scripts}{11}
\entry {\command {awk} programs, running, without input files}{12}
\entry {\command {awk} programs, shell variables in}{97}
\entry {\command {awk}, function of}{11}
\entry {\command {awk}, \command {gawk} and}{3, 5}
\entry {\command {awk}, history of}{4}
\entry {\command {awk}, implementation issues, pipes}{67}
\entry {\command {awk}, implementations}{277}
\entry {\command {awk}, implementations, limits}{56}
\entry {\command {awk}, invoking}{173}
\entry {\command {awk}, new vs. old}{4}
\entry {\command {awk}, new vs. old, \code {OFMT} variable}{78}
\entry {\command {awk}, POSIX and}{3}
\entry {\command {awk}, POSIX and, See Also POSIX \command {awk}}{3}
\entry {\command {awk}, regexp constants and}{87}
\entry {\command {awk}, See Also \command {gawk}}{3}
\entry {\command {awk}, terms describing}{5}
\entry {\command {awk}, uses for}{3, 11, 22}
\entry {\command {awk}, versions of}{4, 252}
\entry {\command {awk}, versions of, changes between SVR3.1 and SVR4}{253}
\entry {\command {awk}, versions of, changes between SVR4 and POSIX \command {awk}}{253}
\entry {\command {awk}, versions of, changes between V7 and SVR3.1}{252}
\entry {\command {awk}, versions of, See Also Bell Laboratories \command {awk}}{254}
\entry {\code {awk.h} file (internal)}{282}
\entry {\command {awka} compiler for \command {awk}}{278}
\entry {\code {AWKNUM} internal type}{283}
\entry {\env {AWKPATH} environment variable}{178}
\entry {\code {AWKPATH} environment variable}{270}
\entry {\code {awkprof.out} file}{169}
\entry {\command {awksed.awk} program}{243}
\entry {\code {awkvars.out} file}{175}
\initial {B}
\entry {backslash (\code {{\tt \backslashcurfont }})}{12, 14, 15, 27}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }"} escape sequence}{26}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }'} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }/} escape sequence}{26}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }<} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }>} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }`} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }a} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }b} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }B} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }f} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }n} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }}\var {nnn} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }r} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }t} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }v} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }w} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }W} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }x} escape sequence}{25}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {{\tt \backslashcurfont }y} operator (\command {gawk})}{31}
\entry {backslash (\code {{\tt \backslashcurfont }}), as field separators}{45}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and}{21, 219}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, comments and}{22}
\entry {backslash (\code {{\tt \backslashcurfont }}), continuing lines and, in \command {csh}}{20, 21}
\entry {backslash (\code {{\tt \backslashcurfont }}), \code {gsub}/\code {gensub}/\code {sub} functions and}{136}
\entry {backslash (\code {{\tt \backslashcurfont }}), in character lists}{29}
\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences}{25, 26}
\entry {backslash (\code {{\tt \backslashcurfont }}), in escape sequences, POSIX and}{26}
\entry {backslash (\code {{\tt \backslashcurfont }}), regexp constants}{34}
\entry {\code {BBS-list} file}{16}
\entry {Beebe, Nelson}{9}
\entry {Beebe, Nelson H.F.\:}{278}
\entry {\code {BEGIN} pattern}{36, 43, 96}
\entry {\code {BEGIN} pattern, \code {assert} user-defined function and}{187}
\entry {\code {BEGIN} pattern, Boolean patterns and}{94}
\entry {\code {BEGIN} pattern, \code {exit} statement and}{106}
\entry {\code {BEGIN} pattern, \code {getline} and}{56}
\entry {\code {BEGIN} pattern, headings\comma {} adding}{58}
\entry {\code {BEGIN} pattern, \code {next}/\code {nextfile} statements and}{97, 105}
\entry {\code {BEGIN} pattern, \code {OFS}/\code {ORS} variables, assigning values to}{59}
\entry {\code {BEGIN} pattern, operators and}{96}
\entry {\code {BEGIN} pattern, \command {pgawk} program}{170}
\entry {\code {BEGIN} pattern, \code {print} statement and}{97}
\entry {\code {BEGIN} pattern, \code {pwcat} program}{203}
\entry {\code {BEGIN} pattern, running \command {awk} programs and}{211}
\entry {\code {BEGIN} pattern, \code {TEXTDOMAIN} variable and}{159}
\entry {\code {beginfile} user-defined function}{193}
\entry {Bell Laboratories \command {awk} extensions}{254}
\entry {Benzinger, Michael}{259}
\entry {BeOS}{266}
\entry {Berry, Karl}{9}
\entry {binary input/output}{107}
\entry {\code {bindtextdomain} function (C library)}{157}
\entry {\code {bindtextdomain} function (\command {gawk})}{149, 158}
\entry {\code {bindtextdomain} function (\command {gawk}), portability and}{161}
\entry {\code {BINMODE} variable}{107, 270}
\entry {\code {bits2str} user-defined function}{148}
\entry {bitwise, complement}{147}
\entry {bitwise, operations}{147}
\entry {bitwise, shift}{147}
\entry {body, in actions}{99}
\entry {body, in loops}{100}
\entry {Boolean expressions}{88}
\entry {Boolean expressions, as patterns}{94}
\entry {Boolean operators, See Boolean expressions}{88}
\entry {Bourne shell, quoting rules for}{15}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), actions and}{98}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), \command {pgawk} program}{171}
\entry {braces (\code {{\tt \char 123}{\tt \char 125}}), statements, grouping}{99}
\entry {bracket expressions, See character lists}{27}
\entry {\code {break} statement}{103}
\entry {Brennan, Michael}{121, 166, 243, 277}
\entry {Broder, Alan J.\:}{259}
\entry {Brown, Martin}{9, 258, 276}
\entry {BSD portals}{169}
\entry {BSD-based operating systems}{307}
\entry {Buening, Andreas}{9, 259}
\entry {buffering, input/output}{142, 167}
\entry {buffering, interactive vs. noninteractive}{141}
\entry {buffers, flushing}{140, 142}
\entry {buffers, operators for}{31}
\entry {bug reports, email address, \code {bug-gawk@gnu.org}}{276}
\entry {\code {bug-gawk@gnu.org} bug reporting address}{276}
\entry {built-in functions}{127}
\entry {built-in functions, evaluation order}{127}
\entry {built-in variables}{107}
\entry {built-in variables, \code {-v} option\comma {} setting with}{174}
\entry {built-in variables, conveying information}{110}
\entry {built-in variables, user-modifiable}{107}
\initial {C}
\entry {call by reference}{153}
\entry {call by value}{152}
\entry {caret (\code {^})}{27, 31}
\entry {caret (\code {^}), \code {^} operator}{91, 176}
\entry {caret (\code {^}), \code {^=} operator}{83, 92, 176}
\entry {caret (\code {^}), in character lists}{29}
\entry {\code {case} keyword}{102}
\entry {case sensitivity, array indices and}{117}
\entry {case sensitivity, converting case}{136}
\entry {case sensitivity, example programs}{181}
\entry {case sensitivity, \command {gawk}}{32}
\entry {case sensitivity, regexps and}{32, 108}
\entry {case sensitivity, string comparisons and}{108}
\entry {character encodings}{189}
\entry {character lists}{27, 29}
\entry {character lists, character classes}{30}
\entry {character lists, collating elements}{30}
\entry {character lists, collating symbols}{30}
\entry {character lists, complemented}{28}
\entry {character lists, equivalence classes}{30}
\entry {character lists, non-ASCII}{30}
\entry {character lists, range expressions}{29}
\entry {character sets}{189}
\entry {character sets (machine character encodings)}{300}
\entry {character sets, See Also character lists}{27}
\entry {characters, counting}{228}
\entry {characters, transliterating}{233}
\entry {characters, values of as numbers}{188}
\entry {Chassell, Robert J.\:}{9}
\entry {\code {chdir} function\comma {} implementing in \command {gawk}}{286}
\entry {\command {chem} utility}{301}
\entry {\code {chr} user-defined function}{188}
\entry {Cliff random numbers}{188}
\entry {\code {cliff_rand} user-defined function}{188}
\entry {\code {close} function}{54, 70, 140}
\entry {\code {close} function, return values}{72}
\entry {\code {close} function, two-way pipes and}{167}
\entry {Close, Diane}{8, 258}
\entry {collating elements}{30}
\entry {collating symbols}{30}
\entry {columns, aligning}{58}
\entry {columns, cutting}{210}
\entry {comma (\code {,}), in range patterns}{95}
\entry {command line, arguments}{110, 113, 178}
\entry {command line, formats}{11}
\entry {command line, \code {FS} on\comma {} setting}{45}
\entry {command line, invoking \command {awk} from}{173}
\entry {command line, options}{12, 45, 173}
\entry {command line, options, end of}{174}
\entry {command line, variables\comma {} assigning on}{76}
\entry {command-line options, processing}{196}
\entry {command-line options, string extraction}{160}
\entry {commenting}{14}
\entry {commenting, backslash continuation and}{22}
\entry {\code {comp.lang.awk} newsgroup}{276}
\entry {comparison expressions}{85}
\entry {comparison expressions, as patterns}{93}
\entry {comparison expressions, string vs. regexp}{87}
\entry {compatibility mode (\command {gawk}), extensions}{255}
\entry {compatibility mode (\command {gawk}), file names}{70}
\entry {compatibility mode (\command {gawk}), hexadecimal numbers}{74}
\entry {compatibility mode (\command {gawk}), octal numbers}{74}
\entry {compatibility mode (\command {gawk}), specifying}{174}
\entry {compiled programs}{294, 301}
\entry {\code {compl} function (\command {gawk})}{147}
\entry {complement, bitwise}{147}
\entry {compound statements\comma {} control statements and}{99}
\entry {concatenating}{80}
\entry {conditional expressions}{89}
\entry {configuration option, \code {--disable-lint}}{264}
\entry {configuration option, \code {--disable-nls}}{265}
\entry {configuration option, \code {--enable-portals}}{264}
\entry {configuration option, \code {--enable-switch}}{264}
\entry {configuration option, \code {--with-included-gettext}}{164, 264}
\entry {configuration options\comma {} \command {gawk}}{264}
\entry {constants, nondecimal}{165}
\entry {constants, types of}{73}
\entry {\code {continue} statement}{104}
\entry {control statements}{99}
\entry {converting, case}{136}
\entry {converting, dates to timestamps}{143}
\entry {converting, during subscripting}{121}
\entry {converting, numbers}{77}
\entry {converting, numbers, to strings}{148}
\entry {converting, strings to numbers}{77}
\entry {\code {CONVFMT} variable}{77, 108}
\entry {\code {CONVFMT} variable, array subscripts and}{121}
\entry {coprocesses}{66, 166}
\entry {coprocesses, closing}{70}
\entry {coprocesses, \code {getline} from}{55}
\entry {\code {cos} function}{128}
\entry {counting}{228}
\entry {\command {csh} utility}{21}
\entry {\command {csh} utility, \code {|&} operator, comparison with}{166}
\entry {\command {csh} utility, backslash continuation and}{20}
\entry {\command {csh} utility, \code {POSIXLY_CORRECT} environment variable}{177}
\entry {\code {ctime} user-defined function}{152}
\entry {currency symbols, localization}{157}
\entry {\code {custom.h} file}{265}
\entry {\command {cut} utility}{210}
\entry {\code {cut.awk} program}{211}
\initial {D}
\entry {d.c., See dark corner}{7}
\entry {dark corner}{7, 62, 83, 85, 301}
\entry {dark corner, array subscripts}{122}
\entry {dark corner, \code {break} statement}{104}
\entry {dark corner, \code {close} function}{72}
\entry {dark corner, command-line arguments}{77}
\entry {dark corner, \code {continue} statement}{105}
\entry {dark corner, \code {CONVFMT} variable}{77}
\entry {dark corner, escape sequences}{178}
\entry {dark corner, escape sequences, for metacharacters}{27}
\entry {dark corner, \code {exit} statement}{107}
\entry {dark corner, field separators}{47}
\entry {dark corner, \code {FILENAME} variable}{56, 111}
\entry {dark corner, \code {FNR}/\code {NR} variables}{113}
\entry {dark corner, format-control characters}{61}
\entry {dark corner, \code {FS} as null string}{45}
\entry {dark corner, input files}{37}
\entry {dark corner, invoking \command {awk}}{173}
\entry {dark corner, multiline records}{49}
\entry {dark corner, \code {NF} variable, decrementing}{42}
\entry {dark corner, \code {OFMT} variable}{60}
\entry {dark corner, regexp constants}{74}
\entry {dark corner, regexp constants, \code {/=} operator and}{83}
\entry {dark corner, regexp constants, as arguments to user-defined functions}{75}
\entry {dark corner, \code {split} function}{132}
\entry {dark corner, strings, storing}{39}
\entry {data, fixed-width}{47}
\entry {data-driven languages}{295}
\entry {database, group, reading}{205}
\entry {database, users\comma {} reading}{201}
\entry {\command {date} utility, GNU}{142}
\entry {\code {date} utility, POSIX}{146}
\entry {dates, converting to timestamps}{143}
\entry {dates, information related to\comma {} localization}{158}
\entry {Davies, Stephen}{258, 277}
\entry {\code {dcgettext} function (\command {gawk})}{149, 158}
\entry {\code {dcgettext} function (\command {gawk}), portability and}{161}
\entry {\code {dcngettext} function (\command {gawk})}{149, 158}
\entry {\code {dcngettext} function (\command {gawk}), portability and}{161}
\entry {deadlocks}{167}
\entry {debugging \command {gawk}}{180}
\entry {debugging \command {gawk}, bug reports}{276}
\entry {decrement operators}{84}
\entry {\code {default} keyword}{102}
\entry {Deifik, Scott}{9, 258, 276}
\entry {\code {delete} statement}{120}
\entry {deleting elements in arrays}{120}
\entry {deleting entire arrays}{120}
\entry {differences in \command {awk} and \command {gawk}, \code {ARGC}/\code {ARGV} variables}{114}
\entry {differences in \command {awk} and \command {gawk}, \code {ARGIND} variable}{110}
\entry {differences in \command {awk} and \command {gawk}, array elements, deleting}{120}
\entry {differences in \command {awk} and \command {gawk}, \code {AWKPATH} environment variable}{178}
\entry {differences in \command {awk} and \command {gawk}, \code {BEGIN}/\code {END} patterns}{97}
\entry {differences in \command {awk} and \command {gawk}, \code {BINMODE} variable}{108, 270}
\entry {differences in \command {awk} and \command {gawk}, \code {close} function}{71, 72}
\entry {differences in \command {awk} and \command {gawk}, \code {ERRNO} variable}{111}
\entry {differences in \command {awk} and \command {gawk}, error messages}{68}
\entry {differences in \command {awk} and \command {gawk}, \code {FIELDWIDTHS} variable}{108}
\entry {differences in \command {awk} and \command {gawk}, function arguments (\command {gawk})}{127}
\entry {differences in \command {awk} and \command {gawk}, \code {getline} command}{51}
\entry {differences in \command {awk} and \command {gawk}, \code {IGNORECASE} variable}{108}
\entry {differences in \command {awk} and \command {gawk}, implementation limitations}{56, 67}
\entry {differences in \command {awk} and \command {gawk}, input/output operators}{55, 66}
\entry {differences in \command {awk} and \command {gawk}, line continuations}{89}
\entry {differences in \command {awk} and \command {gawk}, \code {LINT} variable}{109}
\entry {differences in \command {awk} and \command {gawk}, \code {match} function}{131}
\entry {differences in \command {awk} and \command {gawk}, \code {next}/\code {nextfile} statements}{106}
\entry {differences in \command {awk} and \command {gawk}, \code {print}/\code {printf} statements}{62}
\entry {differences in \command {awk} and \command {gawk}, \code {PROCINFO} array}{112}
\entry {differences in \command {awk} and \command {gawk}, record separators}{38}
\entry {differences in \command {awk} and \command {gawk}, regexp constants}{75}
\entry {differences in \command {awk} and \command {gawk}, regular expressions}{32}
\entry {differences in \command {awk} and \command {gawk}, \code {RS}/\code {RT} variables}{38}
\entry {differences in \command {awk} and \command {gawk}, \code {RT} variable}{113}
\entry {differences in \command {awk} and \command {gawk}, single-character fields}{44}
\entry {differences in \command {awk} and \command {gawk}, \code {split} function}{132}
\entry {differences in \command {awk} and \command {gawk}, strings}{73}
\entry {differences in \command {awk} and \command {gawk}, strings, storing}{39}
\entry {differences in \command {awk} and \command {gawk}, \code {strtonum} function (\command {gawk})}{133}
\entry {differences in \command {awk} and \command {gawk}, \code {TEXTDOMAIN} variable}{110}
\entry {differences in \command {awk} and \command {gawk}, trunc-mod operation}{79}
\entry {directories, changing}{286}
\entry {directories, searching}{178, 250}
\entry {division}{79}
\entry {\code {do}-\code {while} statement}{24, 101}
\entry {documentation, of \command {awk} programs}{181}
\entry {documentation, online}{7}
\entry {documents\comma {} searching}{230}
\entry {dollar sign (\code {$})}{27}
\entry {dollar sign (\code {$}), \code {$} field operator}{39, 91}
\entry {dollar sign (\code {$}), incrementing fields and arrays}{84}
\entry {double quote (\code {"})}{12, 15}
\entry {double quote (\code {"}), regexp constants}{34}
\entry {double-precision floating-point}{295}
\entry {Drepper, Ulrich}{9}
\entry {\code {dupnode} internal function}{284}
\entry {\code {dupword.awk} program}{231}
\initial {E}
\entry {EBCDIC}{189}
\entry {\command {egrep} utility}{29, 215}
\entry {\code {egrep.awk} program}{216}
\entry {elements in arrays}{117}
\entry {elements in arrays, assigning}{118}
\entry {elements in arrays, deleting}{120}
\entry {elements in arrays, order of}{120}
\entry {elements in arrays, scanning}{119}
\entry {email address for bug reports, \code {bug-gawk@gnu.org}}{276}
\entry {\code {EMISTERED}}{168}
\entry {empty pattern}{97}
\entry {empty strings, See null strings}{44}
\entry {\code {END} pattern}{96}
\entry {\code {END} pattern, \code {assert} user-defined function and}{187}
\entry {\code {END} pattern, backslash continuation and}{219}
\entry {\code {END} pattern, Boolean patterns and}{94}
\entry {\code {END} pattern, \code {exit} statement and}{106}
\entry {\code {END} pattern, \code {next}/\code {nextfile} statements and}{97, 105}
\entry {\code {END} pattern, operators and}{96}
\entry {\code {END} pattern, \command {pgawk} program}{170}
\entry {\code {END} pattern, \code {print} statement and}{97}
\entry {\code {endfile} user-defined function}{193}
\entry {\code {endgrent} function (C library)}{209}
\entry {\code {endgrent} user-defined function}{209}
\entry {\code {endpwent} function (C library)}{205}
\entry {\code {endpwent} user-defined function}{205}
\entry {\code {ENVIRON} variable}{111}
\entry {environment variables}{111}
\entry {epoch, definition of}{302}
\entry {equals sign (\code {=}), \code {=} operator}{81}
\entry {equals sign (\code {=}), \code {==} operator}{86, 91}
\entry {EREs (Extended Regular Expressions)}{29}
\entry {\code {ERRNO} variable}{51, 111, 285}
\entry {error handling}{68}
\entry {error handling, \code {ERRNO} variable and}{111}
\entry {error output}{68}
\entry {escape processing, \code {gsub}/\code {gensub}/\code {sub} functions}{136}
\entry {escape sequences}{25}
\entry {escape sequences, unrecognized}{176}
\entry {evaluation order}{84}
\entry {evaluation order, concatenation}{80}
\entry {evaluation order, functions}{127}
\entry {examining fields}{39}
\entry {exclamation point (\code {!}), \code {!} operator}{88, 91, 218}
\entry {exclamation point (\code {!}), \code {!=} operator}{86, 91}
\entry {exclamation point (\code {!}), \code {!~} operator}{24, 32, 34, 74, 86, 87, 91, 94}
\entry {\code {exit} statement}{106}
\entry {\code {exp} function}{128}
\entry {\command {expand} utility}{18}
\entry {expressions}{73}
\entry {expressions, as patterns}{93}
\entry {expressions, assignment}{81}
\entry {expressions, Boolean}{88}
\entry {expressions, comparison}{85}
\entry {expressions, conditional}{89}
\entry {expressions, matching, See comparison expressions}{85}
\entry {expressions, selecting}{89}
\entry {Extended Regular Expressions (EREs)}{29}
\entry {\code {extension} function (\command {gawk})}{290}
\entry {extensions, Bell Laboratories \command {awk}}{254}
\entry {extensions, in \command {gawk}, not in POSIX \command {awk}}{255}
\entry {extensions, \command {mawk}}{277}
\entry {\code {extract.awk} program}{241}
\entry {extraction, of marked strings (internationalization)}{160}
\initial {F}
\entry {false, logical}{85}
\entry {FDL (Free Documentation License)}{315}
\entry {features, adding to \command {gawk}}{279}
\entry {features, advanced, See advanced features}{179}
\entry {features, deprecated}{179}
\entry {features, undocumented}{180}
\entry {Fenlason, Jay}{4, 258}
\entry {\code {fflush} function}{140}
\entry {\code {fflush} function\comma {} unsupported}{176}
\entry {field numbers}{40}
\entry {field operator \code {$}}{39}
\entry {field operators\comma {} dollar sign as}{39}
\entry {field separators}{43, 108, 109}
\entry {field separators, choice of}{43}
\entry {field separators, \code {FIELDWIDTHS} variable and}{108}
\entry {field separators, in multiline records}{49}
\entry {field separators, on command line}{45}
\entry {field separators, POSIX and}{39, 46}
\entry {field separators, regular expressions as}{43, 44}
\entry {field separators, See Also \code {OFS}}{41}
\entry {field separators, spaces as}{212}
\entry {fields}{36, 39, 295}
\entry {fields, adding}{41}
\entry {fields, changing contents of}{41}
\entry {fields, cutting}{210}
\entry {fields, examining}{39}
\entry {fields, number of}{39}
\entry {fields, numbers}{40}
\entry {fields, printing}{58}
\entry {fields, separating}{43}
\entry {fields, single-character}{44}
\entry {\code {FIELDWIDTHS} variable}{47, 108}
\entry {file descriptors}{68}
\entry {file names, distinguishing}{111}
\entry {file names, in compatibility mode}{70}
\entry {file names, standard streams in \command {gawk}}{68}
\entry {\code {FILENAME} variable}{36, 111}
\entry {\code {FILENAME} variable, \code {getline}\comma {} setting with}{56}
\entry {filenames, assignments as}{196}
\entry {files, \code {.mo}}{157}
\entry {files, \code {.mo}, converting from \code {.po}}{163}
\entry {files, \code {.mo}, specifying directory of}{157, 158}
\entry {files, \code {.po}}{156, 159}
\entry {files, \code {.po}, converting to \code {.mo}}{163}
\entry {files, \code {/dev/\dots {}} special files}{68}
\entry {files, \code {/inet/} (\command {gawk})}{168}
\entry {files, \code {/p} (\command {gawk})}{169}
\entry {files, as single records}{39}
\entry {files, \command {awk} programs in}{12}
\entry {files, \code {awkprof.out}}{169}
\entry {files, \code {awkvars.out}}{175}
\entry {files, closing}{140}
\entry {files, descriptors, See file descriptors}{68}
\entry {files, for process information}{69}
\entry {files, group}{205}
\entry {files, information about\comma {} retrieving}{286}
\entry {files, initialization and cleanup}{192}
\entry {files, input, See input files}{12}
\entry {files, log\comma {} timestamps in}{142}
\entry {files, managing}{192}
\entry {files, managing, data file boundaries}{192}
\entry {files, message object}{157}
\entry {files, message object, converting from portable object files}{163}
\entry {files, message object, specifying directory of}{157, 158}
\entry {files, multiple passes over}{178}
\entry {files, multiple\comma {} duplicating output into}{223}
\entry {files, output, See output files}{70}
\entry {files, password}{201}
\entry {files, portable object}{156, 159}
\entry {files, portable object, converting to message object files}{163}
\entry {files, portable object, generating}{175}
\entry {files, portal}{169}
\entry {files, processing\comma {} \code {ARGIND} variable and}{110}
\entry {files, reading}{194}
\entry {files, reading, multiline records}{49}
\entry {files, searching for regular expressions}{215}
\entry {files, skipping}{194}
\entry {files, source\comma {} search path for}{250}
\entry {files, splitting}{221}
\entry {files, Texinfo\comma {} extracting programs from}{240}
\entry {Fish, Fred}{258, 276}
\entry {fixed-width data}{47}
\entry {flag variables}{88, 223}
\entry {floating-point}{297}
\entry {floating-point, numbers}{295}
\entry {floating-point, numbers, \code {AWKNUM} internal type}{283}
\entry {\code {FNR} variable}{36, 111}
\entry {\code {FNR} variable, changing}{113}
\entry {\code {for} statement}{101}
\entry {\code {for} statement, in arrays}{119}
\entry {\code {force_number} internal function}{283}
\entry {\code {force_string} internal function}{283}
\entry {format specifiers, mixing regular with positional specifiers}{161}
\entry {format specifiers, \code {printf} statement}{60}
\entry {format specifiers, \code {strftime} function (\command {gawk})}{144}
\entry {format strings}{60}
\entry {formats\comma {} numeric output}{59}
\entry {formatting output}{60}
\entry {forward slash (\code {/})}{24}
\entry {forward slash (\code {/}), \code {/} operator}{91}
\entry {forward slash (\code {/}), \code {/=} operator}{83, 92}
\entry {forward slash (\code {/}), \code {/=} operator, vs. \code {/=\dots {}/} regexp constant}{83}
\entry {forward slash (\code {/}), patterns and}{94}
\entry {Free Documentation License (FDL)}{315}
\entry {Free Software Foundation (FSF)}{7, 260, 303}
\entry {\code {free_temp} internal macro}{284}
\entry {FreeBSD}{307}
\entry {\code {FS} variable}{43, 108}
\entry {\code {FS} variable, \code {--field-separator} option and}{173}
\entry {FS variable, as null string}{45}
\entry {\code {FS} variable, as TAB character}{176}
\entry {\code {FS} variable, changing value of}{43, 180}
\entry {\code {FS} variable, running \command {awk} programs and}{211}
\entry {\code {FS} variable, setting from command line}{45}
\entry {FSF (Free Software Foundation)}{7, 260, 303}
\entry {function calls}{89}
\entry {functions, arrays as parameters to}{153}
\entry {functions, built-in}{89, 127}
\entry {functions, built-in, adding to \command {gawk}}{282}
\entry {functions, built-in, evaluation order}{127}
\entry {functions, defining}{149}
\entry {functions, library}{181}
\entry {functions, library, assertions}{186}
\entry {functions, library, associative arrays and}{182}
\entry {functions, library, C library}{196}
\entry {functions, library, character values as numbers}{188}
\entry {functions, library, Cliff random numbers}{188}
\entry {functions, library, command-line options}{196}
\entry {functions, library, example program for using}{244}
\entry {functions, library, group database, reading}{205}
\entry {functions, library, managing data files}{192}
\entry {functions, library, managing time}{190}
\entry {functions, library, merging arrays into strings}{190}
\entry {functions, library, \code {nextfile} statement}{183}
\entry {functions, library, rounding numbers}{187}
\entry {functions, library, user database, reading}{201}
\entry {functions, names of}{116, 150}
\entry {functions, recursive}{150}
\entry {functions, return values\comma {} setting}{285}
\entry {functions, string-translation}{149}
\entry {functions, undefined}{153}
\entry {functions, user-defined}{149}
\entry {functions, user-defined, calling}{152}
\entry {functions, user-defined, counts}{171}
\entry {functions, user-defined, library of}{181}
\entry {functions, user-defined, \code {next}/\code {nextfile} statements and}{105, 106}
\initial {G}
\entry {G-d}{9}
\entry {Garfinkle, Scott}{258}
\entry {\command {gawk}, \command {awk} and}{3, 5}
\entry {\command {gawk}, bitwise operations in}{147}
\entry {\command {gawk}, \code {break} statement in}{104}
\entry {\command {gawk}, built-in variables and}{107}
\entry {\command {gawk}, character classes and}{31}
\entry {\command {gawk}, coding style in}{279}
\entry {\command {gawk}, command-line options}{32}
\entry {\command {gawk}, comparison operators and}{87}
\entry {\command {gawk}, configuring}{265}
\entry {\command {gawk}, configuring, options}{264}
\entry {\command {gawk}, \code {continue} statement in}{105}
\entry {\command {gawk}, debugging}{180}
\entry {\command {gawk}, distribution}{261}
\entry {\command {gawk}, escape sequences}{26}
\entry {\command {gawk}, extensions\comma {} disabling}{176}
\entry {\command {gawk}, features, adding}{279}
\entry {\command {gawk}, features, advanced}{165}
\entry {\command {gawk}, \code {fflush} function in}{140}
\entry {\command {gawk}, field separators and}{108}
\entry {\command {gawk}, \code {FIELDWIDTHS} variable in}{108}
\entry {\command {gawk}, file names in}{67}
\entry {\command {gawk}, format-control characters}{61}
\entry {\command {gawk}, function arguments and}{127}
\entry {\command {gawk}, functions, adding}{282}
\entry {\command {gawk}, hexadecimal numbers and}{74}
\entry {\command {gawk}, \code {IGNORECASE} variable in}{109}
\entry {\command {gawk}, implementation issues}{279}
\entry {\command {gawk}, implementation issues, debugging}{279}
\entry {\command {gawk}, implementation issues, downward compatibility}{279}
\entry {\command {gawk}, implementation issues, limits}{56}
\entry {\command {gawk}, implementation issues, pipes}{67}
\entry {\command {gawk}, installing}{260}
\entry {\command {gawk}, internals}{282}
\entry {\command {gawk}, internationalization and, See internationalization}{156}
\entry {\command {gawk}, interpreter\comma {} adding code to}{290, 293}
\entry {\command {gawk}, interval expressions and}{29}
\entry {\command {gawk}, line continuation in}{89}
\entry {\command {gawk}, \code {LINT} variable in}{109}
\entry {\command {gawk}, list of contributors to}{258}
\entry {\command {gawk}, MS-DOS version of}{270}
\entry {\command {gawk}, newlines in}{21}
\entry {\command {gawk}, \code {next file} statement in}{106}
\entry {\command {gawk}, \code {nextfile} statement in}{106, 183}
\entry {\command {gawk}, octal numbers and}{74}
\entry {\command {gawk}, OS/2 version of}{270}
\entry {\command {gawk}, regexp constants and}{75}
\entry {\command {gawk}, regular expressions, case sensitivity}{32}
\entry {\command {gawk}, regular expressions, operators}{31}
\entry {\command {gawk}, regular expressions, precedence}{29}
\entry {\command {gawk}, See Also \command {awk}}{3}
\entry {\command {gawk}, source code\comma {} obtaining}{260}
\entry {\command {gawk}, splitting fields and}{48}
\entry {\command {gawk}, string-translation functions}{149}
\entry {\command {gawk}, timestamps}{142}
\entry {\command {gawk}, uses for}{3}
\entry {\command {gawk}, versions of, information about\comma {} printing}{177}
\entry {\command {gawk}, word-boundary operator}{31}
\entry {General Public License (GPL)}{303}
\entry {General Public License, See GPL}{7}
\entry {\code {gensub} function (\command {gawk})}{75, 135}
\entry {\code {gensub} function (\command {gawk}), escape processing}{136}
\entry {\code {get_actual_argument} internal function}{284}
\entry {\code {get_argument} internal function}{284}
\entry {\code {get_array_argument} internal macro}{284}
\entry {\code {get_curfunc_arg_count} internal function}{283}
\entry {\code {get_scalar_argument} internal macro}{284}
\entry {\code {getgrent} function (C library)}{205, 209}
\entry {\code {getgrent} user-defined function}{205, 209}
\entry {\code {getgrgid} function (C library)}{208}
\entry {\code {getgrgid} user-defined function}{208}
\entry {\code {getgrnam} function (C library)}{208}
\entry {\code {getgrnam} user-defined function}{208}
\entry {\code {getgruser} function (C library)}{209}
\entry {\code {getgruser} function, user-defined}{209}
\entry {\code {getline} command}{36}
\entry {\code {getline} command, \code {_gr_init} user-defined function}{206}
\entry {\code {getline} command, \code {_pw_init} function}{204}
\entry {\code {getline} command, coprocesses\comma {} using from}{55, 70}
\entry {\code {getline} command, deadlock and}{167}
\entry {\code {getline} command, explicit input with}{51}
\entry {\code {getline} command, \code {FILENAME} variable and}{56}
\entry {\code {getline} command, return values}{51}
\entry {\code {getline} command, variants}{56}
\entry {\code {getopt} function (C library)}{196}
\entry {\code {getopt} user-defined function}{198}
\entry {\code {getpwent} function (C library)}{201, 204}
\entry {\code {getpwent} user-defined function}{201, 204}
\entry {\code {getpwnam} function (C library)}{204}
\entry {\code {getpwnam} user-defined function}{204}
\entry {\code {getpwuid} function (C library)}{204}
\entry {\code {getpwuid} user-defined function}{204}
\entry {\code {getservbyname} function (C library)}{168}
\entry {\code {gettext} function (C library)}{157}
\entry {\code {gettext} library}{156}
\entry {\code {gettext} library, locale categories}{157}
\entry {\code {gettimeofday} user-defined function}{191}
\entry {GNITS mailing list}{9}
\entry {GNU \command {awk}, See \command {gawk}}{3}
\entry {GNU Free Documentation License}{315}
\entry {GNU General Public License}{303}
\entry {GNU Lesser General Public License}{304}
\entry {GNU long options}{173}
\entry {GNU long options, printing list of}{175}
\entry {GNU Project}{7, 303}
\entry {GNU/Linux}{7, 163, 264, 274, 307}
\entry {GPL (General Public License)}{7, 303}
\entry {GPL (General Public License), printing}{174}
\entry {\command {grcat} program}{205}
\entry {Grigera, Juan}{258, 277}
\entry {group database, reading}{205}
\entry {group file}{205}
\entry {groups\comma {} information about}{205}
\entry {\code {gsub} function}{75, 134}
\entry {\code {gsub} function, arguments of}{134}
\entry {\code {gsub} function, escape processing}{136}
\initial {H}
\entry {Hankerson, Darrel}{9, 258, 276}
\entry {Hartholz, Elaine}{9}
\entry {Hartholz, Marshall}{9}
\entry {Hasegawa, Isamu}{9, 259}
\entry {hexadecimal numbers}{73}
\entry {hexadecimal values\comma {} enabling interpretation of}{175}
\entry {\code {histsort.awk} program}{239}
\entry {Hughes, Phil}{9}
\entry {\code {HUP} signal}{172}
\entry {hyphen (\code {-}), \code {-} operator}{91}
\entry {hyphen (\code {-}), \code {--} (decrement/increment) operators}{91}
\entry {hyphen (\code {-}), \code {--} operator}{84}
\entry {hyphen (\code {-}), \code {-=} operator}{83, 92}
\entry {hyphen (\code {-}), filenames beginning with}{174}
\entry {hyphen (\code {-}), in character lists}{29}
\initial {I}
\entry {\command {id} utility}{219}
\entry {\code {id.awk} program}{219}
\entry {\code {if} statement}{24, 99}
\entry {\code {if} statement, actions\comma {} changing}{95}
\entry {\code {igawk.sh} program}{246}
\entry {\code {IGNORECASE} variable}{32, 108}
\entry {\code {IGNORECASE} variable, array sorting and}{126}
\entry {\code {IGNORECASE} variable, array subscripts and}{117}
\entry {\code {IGNORECASE} variable, in example programs}{181}
\entry {implementation issues, \command {gawk}}{279}
\entry {implementation issues, \command {gawk}, limits}{56}
\entry {implementation issues\comma {} \command {gawk}, debugging}{279}
\entry {implementation issues\comma {} \command {gawk}, limits}{67}
\entry {\code {in} operator}{86, 91, 220}
\entry {\code {in} operator, arrays and}{117, 119}
\entry {increment operators}{83}
\entry {\code {index} function}{130}
\entry {indexing arrays}{116}
\entry {initialization, automatic}{20}
\entry {input files}{36}
\entry {input files, closing}{70}
\entry {input files, counting elements in}{228}
\entry {input files, examples}{16}
\entry {input files, reading}{36}
\entry {input files, running \command {awk} without}{12}
\entry {input files, skipping}{183}
\entry {input files, variable assignments and}{178}
\entry {input pipeline}{54}
\entry {input redirection}{53}
\entry {input, data\comma {} nondecimal}{165}
\entry {input, explicit}{51}
\entry {input, files, See input files}{49}
\entry {input, multiline records}{49}
\entry {input, splitting into records}{36}
\entry {input, standard}{12, 68}
\entry {input/output, binary}{107}
\entry {input/output, from \code {BEGIN} and \code {END}}{97}
\entry {input/output, two-way}{166}
\entry {insomnia, cure for}{231}
\entry {installation, amiga}{266}
\entry {installation, atari}{274}
\entry {installation, beos}{266}
\entry {installation, tandem}{275}
\entry {installation, vms}{271}
\entry {installing \command {gawk}}{260}
\entry {\code {int} function}{128}
\entry {\code {INT} signal (MS-DOS)}{172}
\entry {integers}{295}
\entry {integers, unsigned}{295}
\entry {interacting with other programs}{141}
\entry {internationalization}{149, 156}
\entry {internationalization, localization}{110, 156}
\entry {internationalization, localization, character classes}{31}
\entry {internationalization, localization, \command {gawk} and}{156}
\entry {internationalization, localization, locale categories}{157}
\entry {internationalization, localization, marked strings}{158}
\entry {internationalization, localization, portability and}{161}
\entry {internationalizing a program}{156}
\entry {interpreted programs}{294, 304}
\entry {interval expressions}{28}
\entry {\code {inventory-shipped} file}{16}
\entry {ISO}{304}
\entry {ISO 8859-1}{300}
\entry {ISO Latin-1}{300}
\initial {J}
\entry {Jacobs, Andrew}{202}
\entry {Jaegermann, Michal}{9, 258}
\entry {Jedi knights}{180}
\entry {\code {join} user-defined function}{190}
\initial {K}
\entry {Kahrs, J\"urgen}{9, 258}
\entry {Kenobi, Obi-Wan}{180}
\entry {Kernighan, Brian}{4, 7, 9, 80, 254, 258, 277, 296}
\entry {\command {kill} command\comma {} dynamic profiling}{172}
\entry {Knights, jedi}{180}
\entry {Kwok, Conrad}{258}
\initial {L}
\entry {\code {labels.awk} program}{236}
\entry {languages\comma {} data-driven}{295}
\entry {\code {LC_ALL} locale category}{158}
\entry {\code {LC_COLLATE} locale category}{157}
\entry {\code {LC_CTYPE} locale category}{157}
\entry {\code {LC_MESSAGES} locale category}{157}
\entry {\code {LC_MESSAGES} locale category, \code {bindtextdomain} function (\command {gawk})}{159}
\entry {\code {LC_MONETARY} locale category}{157}
\entry {\code {LC_NUMERIC} locale category}{157}
\entry {\code {LC_RESPONSE} locale category}{158}
\entry {\code {LC_TIME} locale category}{158}
\entry {left angle bracket (\code {<}), \code {<} operator}{86, 91}
\entry {left angle bracket (\code {<}), \code {<} operator (I/O)}{53}
\entry {left angle bracket (\code {<}), \code {<=} operator}{86, 91}
\entry {left shift, bitwise}{147}
\entry {leftmost longest match}{49}
\entry {\code {length} function}{130}
\entry {Lesser General Public License (LGPL)}{304}
\entry {LGPL (Lesser General Public License)}{304}
\entry {libraries of \command {awk} functions}{181}
\entry {libraries of \command {awk} functions, assertions}{186}
\entry {libraries of \command {awk} functions, associative arrays and}{182}
\entry {libraries of \command {awk} functions, character values as numbers}{188}
\entry {libraries of \command {awk} functions, command-line options}{196}
\entry {libraries of \command {awk} functions, example program for using}{244}
\entry {libraries of \command {awk} functions, group database, reading}{205}
\entry {libraries of \command {awk} functions, managing, data files}{192}
\entry {libraries of \command {awk} functions, managing, time}{190}
\entry {libraries of \command {awk} functions, merging arrays into strings}{190}
\entry {libraries of \command {awk} functions, \code {nextfile} statement}{183}
\entry {libraries of \command {awk} functions, rounding numbers}{187}
\entry {libraries of \command {awk} functions, user database, reading}{201}
\entry {line breaks}{20}
\entry {line continuations}{88}
\entry {line continuations, \command {gawk}}{89}
\entry {line continuations, in \code {print} statement}{58}
\entry {line continuations, with C shell}{20}
\entry {lines, blank, printing}{57}
\entry {lines, counting}{228}
\entry {lines, duplicate\comma {} removing}{239}
\entry {lines, matching ranges of}{95}
\entry {lines, skipping between markers}{95}
\entry {lint checking}{109}
\entry {lint checking, array elements}{120}
\entry {lint checking, array subscripts}{122}
\entry {lint checking, empty programs}{173}
\entry {lint checking, issuing warnings}{175}
\entry {lint checking, \code {POSIXLY_CORRECT} environment variable}{177}
\entry {lint checking, undefined functions}{153}
\entry {\code {LINT} variable}{109}
\entry {Linux}{7, 163, 264, 274, 307}
\entry {locale categories}{157}
\entry {localization}{156}
\entry {localization, See internationalization\comma {} localization}{156}
\entry {log files, timestamps in}{142}
\entry {\code {log} function}{128}
\entry {logical false/true}{85}
\entry {logical operators, See Boolean expressions}{88}
\entry {login information}{201}
\entry {long options}{173}
\entry {loops}{100}
\entry {loops, \code {continue} statements and}{102}
\entry {loops, count for header}{171}
\entry {loops, exiting}{103}
\entry {loops, See Also \code {while} statement}{100}
\entry {Lost In Space}{282}
\entry {\command {ls} utility}{20}
\entry {\code {lshift} function (\command {gawk})}{148}
\entry {lvalues/rvalues}{81}
\initial {M}
\entry {mailing labels\comma {} printing}{235}
\entry {mailing list, GNITS}{9}
\entry {\code {make_builtin} internal function}{284}
\entry {\code {make_number} internal function}{283}
\entry {\code {make_string} internal function}{283}
\entry {mark parity}{189}
\entry {marked string extraction (internationalization)}{160}
\entry {marked strings\comma {} extracting}{160}
\entry {Marx, Groucho}{84}
\entry {\code {match} function}{130}
\entry {\code {match} function, \code {RSTART}/\code {RLENGTH} variables}{131}
\entry {matching, expressions, See comparison expressions}{85}
\entry {matching, leftmost longest}{49}
\entry {matching, null strings}{139}
\entry {\command {mawk} program}{277}
\entry {McPhee, Patrick}{259}
\entry {memory, releasing}{284}
\entry {memory, setting limits}{174}
\entry {message object files}{157}
\entry {message object files, converting from portable object files}{163}
\entry {message object files, specifying directory of}{157, 158}
\entry {metacharacters, escape sequences for}{27}
\entry {\code {mktime} function (\command {gawk})}{143}
\entry {modifiers\comma {} in format specifiers}{61}
\entry {monetary information, localization}{157}
\entry {\command {msgfmt} utility}{163}
\initial {N}
\entry {names, arrays/variables}{116, 181}
\entry {names, functions}{150, 181}
\entry {namespace issues}{116, 181}
\entry {namespace issues, functions}{150}
\entry {\command {nawk} utility}{4}
\entry {negative zero}{298}
\entry {NetBSD}{307}
\entry {networks, programming}{168}
\entry {networks, support for}{69}
\entry {newlines}{20, 88, 176}
\entry {newlines, as field separators}{43}
\entry {newlines, as record separators}{36}
\entry {newlines, in dynamic regexps}{34}
\entry {newlines, in regexp constants}{34}
\entry {newlines, printing}{57}
\entry {newlines, separating statements in actions}{98, 99}
\entry {\code {next file} statement}{257}
\entry {\code {next file} statement, deprecated}{179}
\entry {\code {next file} statement, in \command {gawk}}{106}
\entry {\code {next} statement}{89, 105}
\entry {\code {next} statement, \code {BEGIN}/\code {END} patterns and}{97}
\entry {\code {next} statement, user-defined functions and}{105}
\entry {\code {nextfile} statement}{106}
\entry {\code {nextfile} statement, \code {BEGIN}/\code {END} patterns and}{97}
\entry {\code {nextfile} statement, implementing}{183}
\entry {\code {nextfile} statement, in \command {gawk}}{106}
\entry {\code {nextfile} statement, \code {next file} statement and}{179}
\entry {\code {nextfile} statement, user-defined functions and}{106}
\entry {\code {nextfile} user-defined function}{183}
\entry {\code {NF} variable}{39, 111}
\entry {\code {NF} variable, decrementing}{42}
\entry {\code {noassign.awk} program}{196}
\entry {\code {NODE} internal type}{283}
\entry {nodes\comma {} duplicating}{284}
\entry {not Boolean-logic operator}{88}
\entry {\code {NR} variable}{36, 112}
\entry {\code {NR} variable, changing}{113}
\entry {null strings}{37, 44, 85, 296}
\entry {null strings, array elements and}{120}
\entry {null strings, as array subscripts}{122}
\entry {null strings, converting numbers to strings}{77}
\entry {null strings, matching}{139}
\entry {null strings, quoting and}{15}
\entry {number sign (\code {#}), \code {#!} (executable scripts)}{13}
\entry {number sign (\code {#}), \code {#!} (executable scripts), portability issues with}{13}
\entry {number sign (\code {#}), commenting}{14}
\entry {numbers}{283}
\entry {numbers, as array subscripts}{121}
\entry {numbers, as values of characters}{188}
\entry {numbers, Cliff random}{188}
\entry {numbers, converting}{77}
\entry {numbers, converting, to strings}{108, 109, 148}
\entry {numbers, floating-point}{295}
\entry {numbers, floating-point, \code {AWKNUM} internal type}{283}
\entry {numbers, hexadecimal}{73}
\entry {numbers, \code {NODE} internal type}{283}
\entry {numbers, octal}{73}
\entry {numbers, random}{128}
\entry {numbers, rounding}{187}
\entry {numeric, constants}{73}
\entry {numeric, output format}{59}
\entry {numeric, strings}{85}
\entry {numeric, values}{283}
\initial {O}
\entry {\command {oawk} utility}{4}
\entry {obsolete features}{179}
\entry {octal numbers}{73}
\entry {octal values\comma {} enabling interpretation of}{175}
\entry {\code {OFMT} variable}{59, 78, 109}
\entry {\code {OFMT} variable, POSIX \command {awk} and}{60}
\entry {\code {OFS} variable}{41, 59, 109}
\entry {OpenBSD}{307}
\entry {operating systems, BSD-based}{7, 169}
\entry {operating systems, PC, \command {gawk} on}{270}
\entry {operating systems, PC\comma {} \command {gawk} on, installing}{267}
\entry {operating systems, porting \command {gawk} to}{281}
\entry {operating systems, See Also GNU/Linux, PC operating systems, Unix}{260}
\entry {operations, bitwise}{147}
\entry {operators, arithmetic}{79}
\entry {operators, assignment}{81}
\entry {operators, assignment, evaluation order}{82}
\entry {operators, Boolean, See Boolean expressions}{88}
\entry {operators, decrement/increment}{83}
\entry {operators, GNU-specific}{31}
\entry {operators, input/output}{53, 54, 55, 65, 66, 91}
\entry {operators, logical, See Boolean expressions}{88}
\entry {operators, precedence}{84, 90}
\entry {operators, relational, See operators\comma {} comparison}{85}
\entry {operators, short-circuit}{88}
\entry {operators, string}{80}
\entry {operators, string-matching}{24}
\entry {operators, string-matching, for buffers}{31}
\entry {operators, word-boundary (\command {gawk})}{31}
\entry {options, command-line}{12, 45, 173}
\entry {options, command-line, end of}{174}
\entry {options, command-line, invoking \command {awk}}{173}
\entry {options, command-line, processing}{196}
\entry {options, deprecated}{179}
\entry {options, long}{173}
\entry {options, printing list of}{175}
\entry {OR bitwise operation}{147}
\entry {or Boolean-logic operator}{88}
\entry {\code {or} function (\command {gawk})}{147}
\entry {\code {ord} user-defined function}{188}
\entry {order of evaluation, concatenation}{80}
\entry {\code {ORS} variable}{59, 109}
\entry {output field separator, See \code {OFS} variable}{41}
\entry {output record separator, See \code {ORS} variable}{59}
\entry {output redirection}{65}
\entry {output, buffering}{140, 142}
\entry {output, duplicating into files}{223}
\entry {output, files\comma {} closing}{70}
\entry {output, format specifier\comma {} \code {OFMT}}{59}
\entry {output, formatted}{60}
\entry {output, pipes}{66}
\entry {output, printing, See printing}{57}
\entry {output, records}{59}
\entry {output, standard}{68}
\initial {P}
\entry {P1003.2 POSIX standard}{305}
\entry {\code {param_cnt} internal variable}{283}
\entry {parameters\comma {} number of}{283}
\entry {parentheses \code {()}}{28}
\entry {parentheses \code {()}, \command {pgawk} program}{171}
\entry {password file}{201}
\entry {patterns}{93}
\entry {patterns, comparison expressions as}{93}
\entry {patterns, counts}{171}
\entry {patterns, default}{17}
\entry {patterns, empty}{97}
\entry {patterns, expressions as}{93}
\entry {patterns, ranges in}{95}
\entry {patterns, regexp constants as}{94}
\entry {patterns, types of}{93}
\entry {\command {pawk} profiling Bell Labs \command {awk}}{278}
\entry {PC operating systems, \command {gawk} on}{270}
\entry {PC operating systems\comma {} \command {gawk} on, installing}{267}
\entry {percent sign (\code {%}), \code {%} operator}{91}
\entry {percent sign (\code {%}), \code {%=} operator}{83, 92}
\entry {period (\code {.})}{27}
\entry {PERL}{291}
\entry {Peters, Arno}{259}
\entry {Peterson, Hal}{258}
\entry {\command {pgawk} program}{169}
\entry {\command {pgawk} program, \code {awkprof.out} file}{169}
\entry {\command {pgawk} program, dynamic profiling}{172}
\entry {pipes, closing}{70}
\entry {pipes, input}{54}
\entry {pipes, output}{66}
\entry {plus sign (\code {+})}{28}
\entry {plus sign (\code {+}), \code {+} operator}{91}
\entry {plus sign (\code {+}), \code {++} operator}{84, 91}
\entry {plus sign (\code {+}), \code {+=} operator}{82, 92}
\entry {plus sign (\code {+}), decrement/increment operators}{83}
\entry {portability}{26}
\entry {portability, \code {#!} (executable scripts)}{13}
\entry {portability, \code {**} operator and}{80}
\entry {portability, \code {**=} operator and}{83}
\entry {portability, \code {ARGV} variable}{14}
\entry {portability, backslash continuation and}{21}
\entry {portability, backslash in escape sequences}{26}
\entry {portability, \code {close} function and}{71}
\entry {portability, data files as single record}{38}
\entry {portability, deleting array elements}{121}
\entry {portability, example programs}{181}
\entry {portability, \code {fflush} function and}{140}
\entry {portability, functions\comma {} defining}{151}
\entry {portability, \command {gawk}}{281}
\entry {portability, \code {gettext} library and}{156}
\entry {portability, internationalization and}{161}
\entry {portability, \code {length} function}{130}
\entry {portability, new \command {awk} vs. old \command {awk}}{78}
\entry {portability, \code {next} statement in user-defined functions}{153}
\entry {portability, \code {NF} variable\comma {} decrementing}{42}
\entry {portability, operators}{84}
\entry {portability, operators, not in POSIX \command {awk}}{92}
\entry {portability, \code {POSIXLY_CORRECT} environment variable}{177}
\entry {portability, \code {substr} function}{136}
\entry {portable object files}{156, 159}
\entry {portable object files, converting to message object files}{163}
\entry {portable object files, generating}{175}
\entry {portal files}{169}
\entry {porting \command {gawk}}{281}
\entry {positional specifiers, \code {printf} statement}{62}
\entry {positional specifiers\comma {} \code {printf} statement}{160}
\entry {positional specifiers\comma {} \code {printf} statement, mixing with regular formats}{161}
\entry {positive zero}{298}
\entry {POSIX \command {awk}}{5, 83}
\entry {POSIX \command {awk}, \code {**=} operator and}{83}
\entry {POSIX \command {awk}, \code {<} operator and}{53}
\entry {POSIX \command {awk}, \code {|} I/O operator and}{55}
\entry {POSIX \command {awk}, arithmetic operators and}{79}
\entry {POSIX \command {awk}, backslashes in string constants}{26}
\entry {POSIX \command {awk}, \code {BEGIN}/\code {END} patterns}{97}
\entry {POSIX \command {awk}, \code {break} statement and}{104}
\entry {POSIX \command {awk}, changes in \command {awk} versions}{253}
\entry {POSIX \command {awk}, character lists and}{29}
\entry {POSIX \command {awk}, character lists and, character classes}{30, 31}
\entry {POSIX \command {awk}, \code {continue} statement and}{105}
\entry {POSIX \command {awk}, \code {CONVFMT} variable and}{108}
\entry {POSIX \command {awk}, \code {date} utility and}{146}
\entry {POSIX \command {awk}, field separators and}{39, 46}
\entry {POSIX \command {awk}, \code {FS} variable and}{108}
\entry {POSIX \command {awk}, \code {function} keyword in}{150}
\entry {POSIX \command {awk}, functions and, \code {gsub}/\code {sub}}{137}
\entry {POSIX \command {awk}, functions and, \code {length}}{130}
\entry {POSIX \command {awk}, GNU long options and}{173}
\entry {POSIX \command {awk}, interval expressions in}{29}
\entry {POSIX \command {awk}, \code {next}/\code {nextfile} statements and}{105}
\entry {POSIX \command {awk}, numeric strings and}{85}
\entry {POSIX \command {awk}, \code {OFMT} variable and}{60, 78}
\entry {POSIX \command {awk}, period (\code {.})\comma {} using}{27}
\entry {POSIX \command {awk}, \code {printf} format strings and}{64}
\entry {POSIX \command {awk}, regular expressions and}{29}
\entry {POSIX \command {awk}, timestamps and}{142}
\entry {POSIX mode}{176, 177}
\entry {POSIX, \command {awk} and}{3}
\entry {POSIX, \command {gawk} extensions not included in}{255}
\entry {POSIX, programs\comma {} implementing in \command {awk}}{210}
\entry {\code {POSIXLY_CORRECT} environment variable}{177}
\entry {precedence}{84, 90}
\entry {precedence, regexp operators}{29}
\entry {\code {print} statement}{57}
\entry {\code {print} statement, \code {BEGIN}/\code {END} patterns and}{97}
\entry {\code {print} statement, commas, omitting}{58}
\entry {\code {print} statement, I/O operators in}{91}
\entry {\code {print} statement, line continuations and}{58}
\entry {\code {print} statement, \code {OFMT} variable and}{109}
\entry {\code {print} statement, See Also redirection, of output}{65}
\entry {\code {print} statement, \code {sprintf} function and}{187}
\entry {\code {printf} statement}{57, 60}
\entry {\code {printf} statement, columns\comma {} aligning}{58}
\entry {\code {printf} statement, format-control characters}{60}
\entry {\code {printf} statement, I/O operators in}{91}
\entry {\code {printf} statement, modifiers}{61}
\entry {\code {printf} statement, positional specifiers}{62, 160}
\entry {\code {printf} statement, positional specifiers, mixing with regular formats}{161}
\entry {\code {printf} statement, See Also redirection, of output}{65}
\entry {\code {printf} statement, \code {sprintf} function and}{187}
\entry {\code {printf} statement, syntax of}{60}
\entry {printing}{57}
\entry {printing, list of options}{175}
\entry {printing, mailing labels}{235}
\entry {printing, unduplicated lines of text}{224}
\entry {printing, user information}{219}
\entry {private variables}{181}
\entry {process information, files for}{69}
\entry {processes, two-way communications with}{166}
\entry {processing data}{294}
\entry {\code {PROCINFO} array}{70, 112, 201, 205}
\entry {profiling \command {awk} programs}{169}
\entry {profiling \command {awk} programs, dynamically}{172}
\entry {profiling \command {gawk}, See \command {pgawk} program}{169}
\entry {program, definition of}{11}
\entry {programmers, attractiveness of}{166}
\entry {programming conventions, \code {--non-decimal-data} option}{165}
\entry {programming conventions, \code {ARGC}/\code {ARGV} variables}{110}
\entry {programming conventions, \code {exit} statement}{107}
\entry {programming conventions, function parameters}{154}
\entry {programming conventions, functions, calling}{127}
\entry {programming conventions, functions, writing}{150}
\entry {programming conventions, \command {gawk} internals}{288, 290}
\entry {programming conventions, \code {nextfile} statement}{183}
\entry {programming conventions, private variable names}{182}
\entry {programming language, recipe for}{3}
\entry {programming languages\comma {} data-driven vs. procedural}{11}
\entry {programming, basic steps}{294}
\entry {programming, concepts}{294}
\entry {\command {pwcat} program}{201}
\initial {Q}
\entry {question mark (\code {?})}{28, 31}
\entry {question mark (\code {?}), \code {?:} operator}{92}
\entry {\code {QUIT} signal (MS-DOS)}{172}
\entry {quoting}{12, 13, 14}
\entry {quoting, rules for}{14}
\entry {quoting, tricks for}{15}
\initial {R}
\entry {Rakitzis, Byron}{239}
\entry {\code {rand} function}{128}
\entry {random numbers, Cliff}{188}
\entry {random numbers, \code {rand}/\code {srand} functions}{128}
\entry {random numbers, seed of}{128}
\entry {range expressions}{29}
\entry {range patterns}{95}
\entry {Rankin, Pat}{9, 82, 258, 277}
\entry {raw sockets}{168}
\entry {readable data files\comma {} checking}{194}
\entry {\code {readable.awk} program}{194}
\entry {recipe for a programming language}{3}
\entry {record separators}{36, 109}
\entry {record separators, changing}{37}
\entry {record separators, regular expressions as}{38}
\entry {record separators, with multiline records}{49}
\entry {records}{36, 295}
\entry {records, multiline}{49}
\entry {records, printing}{57}
\entry {records, splitting input into}{36}
\entry {records, terminating}{38}
\entry {records, treating files as}{39}
\entry {recursive functions}{150}
\entry {redirection of input}{53}
\entry {redirection of output}{65}
\entry {reference counting, sorting arrays}{125}
\entry {regexp constants}{25, 74, 87}
\entry {regexp constants, \code {/=\dots {}/}, \code {/=} operator and}{83}
\entry {regexp constants, as patterns}{94}
\entry {regexp constants, in \command {gawk}}{75}
\entry {regexp constants, slashes vs. quotes}{34}
\entry {regexp constants, vs. string constants}{34}
\entry {regexp, See regular expressions}{24}
\entry {regular expressions}{24}
\entry {regular expressions as field separators}{43}
\entry {regular expressions, anchors in}{27}
\entry {regular expressions, as field separators}{44}
\entry {regular expressions, as patterns}{24, 93}
\entry {regular expressions, as record separators}{38}
\entry {regular expressions, case sensitivity}{32, 108}
\entry {regular expressions, computed}{34}
\entry {regular expressions, constants, See regexp constants}{25}
\entry {regular expressions, dynamic}{34}
\entry {regular expressions, dynamic, with embedded newlines}{34}
\entry {regular expressions, \command {gawk}, command-line options}{32}
\entry {regular expressions, interval expressions and}{176}
\entry {regular expressions, leftmost longest match}{33}
\entry {regular expressions, operators}{24, 27}
\entry {regular expressions, operators, for buffers}{31}
\entry {regular expressions, operators, for words}{31}
\entry {regular expressions, operators, \command {gawk}}{31}
\entry {regular expressions, operators, precedence of}{29}
\entry {regular expressions, searching for}{215}
\entry {relational operators, See comparison operators}{85}
\entry {\code {return} statement\comma {} user-defined functions}{154}
\entry {return values\comma {} \code {close} function}{72}
\entry {\code {rev} user-defined function}{151}
\entry {\code {rewind} user-defined function}{194}
\entry {right angle bracket (\code {>}), \code {>} operator}{86, 91}
\entry {right angle bracket (\code {>}), \code {>} operator (I/O)}{65}
\entry {right angle bracket (\code {>}), \code {>=} operator}{86, 91}
\entry {right angle bracket (\code {>}), \code {>>} operator (I/O)}{66, 91}
\entry {right shift, bitwise}{147}
\entry {Ritchie, Dennis}{296}
\entry {\code {RLENGTH} variable}{112}
\entry {\code {RLENGTH} variable, \code {match} function and}{131}
\entry {Robbins, Arnold}{46, 54, 202, 231, 259, 276, 291}
\entry {Robbins, Bill}{54}
\entry {Robbins, Harry}{9}
\entry {Robbins, Jean}{9}
\entry {Robbins, Miriam}{9, 54, 202}
\entry {Robinson, Will}{282}
\entry {robot, the}{282}
\entry {Rommel, Kai Uwe}{9, 258}
\entry {\code {round} user-defined function}{187}
\entry {rounding}{187}
\entry {rounding numbers}{187}
\entry {\code {RS} variable}{36, 109}
\entry {\code {RS} variable, multiline records and}{49}
\entry {\code {rshift} function (\command {gawk})}{148}
\entry {\code {RSTART} variable}{112}
\entry {\code {RSTART} variable, \code {match} function and}{131}
\entry {\code {RT} variable}{38, 51, 113}
\entry {Rubin, Paul}{4, 258}
\entry {rule, definition of}{11}
\entry {rvalues/lvalues}{81}
\initial {S}
\entry {scalar values}{295}
\entry {Schreiber, Bert}{9}
\entry {Schreiber, Rita}{9}
\entry {search paths}{270, 273}
\entry {search paths, for source files}{178, 250, 273}
\entry {searching}{130}
\entry {searching, files for regular expressions}{215}
\entry {searching, for words}{230}
\entry {\command {sed} utility}{47, 243, 299}
\entry {semicolon (\code {;})}{22}
\entry {semicolon (\code {;}), \code {AWKPATH} variable and}{270}
\entry {semicolon (\code {;}), separating statements in actions}{98, 99}
\entry {separators, field}{108, 109}
\entry {separators, field, \code {FIELDWIDTHS} variable and}{108}
\entry {separators, field, POSIX and}{39}
\entry {separators, for records}{36, 37}
\entry {separators, for records, regular expressions as}{38}
\entry {separators, for statements in actions}{98}
\entry {separators, record}{109}
\entry {separators, subscript}{109}
\entry {\code {set_value} internal function}{285}
\entry {shells, piping commands into}{67}
\entry {shells, quoting}{97}
\entry {shells, quoting, rules for}{15}
\entry {shells, scripts}{11}
\entry {shells, variables}{97}
\entry {shift, bitwise}{147}
\entry {short-circuit operators}{88}
\entry {side effects}{80, 83, 84}
\entry {side effects, array indexing}{118}
\entry {side effects, \code {asort} function}{124}
\entry {side effects, assignment expressions}{81}
\entry {side effects, Boolean operators}{88}
\entry {side effects, conditional expressions}{89}
\entry {side effects, decrement/increment operators}{83}
\entry {side effects, \code {FILENAME} variable}{56}
\entry {side effects, function calls}{90}
\entry {side effects, statements}{99}
\entry {signals, \code {HUP}/\code {SIGHUP}}{172}
\entry {signals, \code {INT}/\code {SIGINT} (MS-DOS)}{172}
\entry {signals, \code {QUIT}/\code {SIGQUIT} (MS-DOS)}{172}
\entry {signals, \code {USR1}/\code {SIGUSR1}}{172}
\entry {\code {sin} function}{128}
\entry {single quote (\code {'})}{11, 13, 15}
\entry {single quote (\code {'}), vs. apostrophe}{14}
\entry {single quote (\code {'}), with double quotes}{15}
\entry {single-character fields}{44}
\entry {single-precision floating-point}{295}
\entry {Skywalker, Luke}{180}
\entry {\command {sleep} utility}{233}
\entry {sockets}{168}
\entry {sort function, arrays, sorting}{124}
\entry {\command {sort} utility}{238}
\entry {\command {sort} utility, coprocesses and}{167}
\entry {sorting characters in different languages}{157}
\entry {source code, \command {awka}}{278}
\entry {source code, Bell Laboratories \command {awk}}{277}
\entry {source code, \command {gawk}}{260}
\entry {source code, \command {mawk}}{277}
\entry {source code, mixing}{176}
\entry {source files\comma {} search path for}{250}
\entry {sparse arrays}{117}
\entry {Spencer, Henry}{299}
\entry {\code {split} function}{132}
\entry {\code {split} function, array elements\comma {} deleting}{121}
\entry {\code {split} utility}{221}
\entry {\code {split.awk} program}{221}
\entry {\code {sprintf} function}{59, 133}
\entry {\code {sprintf} function, \code {OFMT} variable and}{109}
\entry {\code {sprintf} function, \code {print}/\code {printf} statements and}{187}
\entry {\code {sqrt} function}{128}
\entry {square brackets (\code {[]})}{27}
\entry {\code {srand} function}{129}
\entry {Stallman, Richard}{7, 9, 258, 303}
\entry {standard input}{12, 68}
\entry {standard output}{68}
\entry {\code {stat} function\comma {} implementing in \command {gawk}}{286}
\entry {statements, compound\comma {} control statements and}{99}
\entry {statements, control, in actions}{99}
\entry {statements, multiple}{22}
\entry {\code {stlen} internal variable}{283}
\entry {\code {stptr} internal variable}{283}
\entry {stream editors}{47, 243}
\entry {\code {strftime} function (\command {gawk})}{143}
\entry {string constants}{73}
\entry {string constants, vs. regexp constants}{34}
\entry {string extraction (internationalization)}{160}
\entry {string operators}{80}
\entry {string-matching operators}{24}
\entry {strings}{283}
\entry {strings, converting}{77}
\entry {strings, converting, numbers to}{108, 109, 148}
\entry {strings, empty, See null strings}{37}
\entry {strings, extracting}{160}
\entry {strings, for localization}{158}
\entry {strings, length of}{73}
\entry {strings, merging arrays into}{190}
\entry {strings, \code {NODE} internal type}{283}
\entry {strings, null}{44}
\entry {strings, numeric}{85}
\entry {strings, splitting}{132}
\entry {\code {strtonum} function (\command {gawk})}{133}
\entry {\code {strtonum} function (\command {gawk}), \code {--non-decimal-data} option and}{165}
\entry {\code {sub} function}{75, 133}
\entry {\code {sub} function, arguments of}{134}
\entry {\code {sub} function, escape processing}{136}
\entry {subscript separators}{109}
\entry {subscripts in arrays, multidimensional}{122}
\entry {subscripts in arrays, multidimensional, scanning}{124}
\entry {subscripts in arrays, numbers as}{121}
\entry {subscripts in arrays, uninitialized variables as}{122}
\entry {\code {SUBSEP} variable}{109}
\entry {\code {SUBSEP} variable, multidimensional arrays}{122}
\entry {\code {substr} function}{136}
\entry {Sumner, Andrew}{278}
\entry {\code {switch} statement}{102}
\entry {syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}{83}
\entry {\code {system} function}{141}
\entry {\code {systime} function (\command {gawk})}{143}
\initial {T}
\entry {tandem}{275}
\entry {Tcl}{182}
\entry {TCP/IP}{168}
\entry {TCP/IP, support for}{69}
\entry {\code {tee} utility}{223}
\entry {\code {tee.awk} program}{223}
\entry {terminating records}{38}
\entry {\code {testbits.awk} program}{148}
\entry {Texinfo}{6, 181, 230, 240, 262, 280}
\entry {Texinfo, chapter beginnings in files}{27}
\entry {Texinfo, extracting programs from source files}{240}
\entry {text, printing}{57}
\entry {text\comma {} printing, unduplicated lines of}{224}
\entry {\code {textdomain} function (C library)}{156}
\entry {\code {TEXTDOMAIN} variable}{110, 158}
\entry {\code {TEXTDOMAIN} variable, \code {BEGIN} pattern and}{159}
\entry {\code {TEXTDOMAIN} variable, portability and}{161}
\entry {tilde (\code {~}), \code {~} operator}{24, 32, 34, 74, 86, 87, 91, 94}
\entry {time, alarm clock example program}{231}
\entry {time, localization and}{158}
\entry {time, managing}{190}
\entry {time, retrieving}{142}
\entry {timestamps}{142, 143}
\entry {timestamps, converting dates to}{143}
\entry {timestamps, formatted}{190}
\entry {\code {tmp_number} internal function}{284}
\entry {\code {tmp_string} internal function}{284}
\entry {\code {tolower} function}{136}
\entry {\code {toupper} function}{136}
\entry {\command {tr} utility}{233}
\entry {\code {translate.awk} program}{234}
\entry {troubleshooting, \code {--non-decimal-data} option}{175}
\entry {troubleshooting, \code {-F} option}{180}
\entry {troubleshooting, \code {==} operator}{86}
\entry {troubleshooting, \command {awk} uses \code {FS} not \code {IFS}}{43}
\entry {troubleshooting, backslash before nonspecial character}{26}
\entry {troubleshooting, division}{79}
\entry {troubleshooting, fatal errors, field widths\comma {} specifying}{47}
\entry {troubleshooting, fatal errors, \code {printf} format strings}{64}
\entry {troubleshooting, \code {fflush} function}{140}
\entry {troubleshooting, function call syntax}{90}
\entry {troubleshooting, \command {gawk}}{180, 279}
\entry {troubleshooting, \command {gawk}, bug reports}{276}
\entry {troubleshooting, \command {gawk}, fatal errors\comma {} function arguments}{127}
\entry {troubleshooting, \code {getline} function}{195}
\entry {troubleshooting, \code {gsub}/\code {sub} functions}{134}
\entry {troubleshooting, \code {match} function}{132}
\entry {troubleshooting, \code {print} statement\comma {} omitting commas}{58}
\entry {troubleshooting, printing}{67}
\entry {troubleshooting, quotes with file names}{68}
\entry {troubleshooting, readable data files}{194}
\entry {troubleshooting, regexp constants vs. string constants}{34}
\entry {troubleshooting, string concatenation}{80}
\entry {troubleshooting, \code {substr} function}{136}
\entry {troubleshooting, \code {system} function}{141}
\entry {troubleshooting, typographical errors\comma {} global variables}{175}
\entry {true, logical}{85}
\entry {Trueman, David}{4, 9, 258}
\entry {trunc-mod operation}{79}
\entry {truth values}{85}
\entry {type conversion}{77}
\entry {\code {type} internal variable}{283}
\initial {U}
\entry {undefined functions}{153}
\entry {underscore (\code {_}), \code {_} C macro}{157}
\entry {underscore (\code {_}), in names of private variables}{182}
\entry {underscore (\code {_}), translatable string}{159}
\entry {undocumented features}{180}
\entry {uninitialized variables, as array subscripts}{122}
\entry {\command {uniq} utility}{224}
\entry {\code {uniq.awk} program}{225}
\entry {Unix}{307}
\entry {Unix \command {awk}, backslashes in escape sequences}{26}
\entry {Unix \command {awk}, \code {close} function and}{72}
\entry {Unix \command {awk}, password files\comma {} field separators and}{46}
\entry {Unix, \command {awk} scripts and}{13}
\entry {unsigned integers}{295}
\entry {\code {update_ERRNO} internal function}{285}
\entry {user database\comma {} reading}{201}
\entry {user-defined, functions}{149}
\entry {user-defined, functions, counts}{171}
\entry {user-defined, variables}{76}
\entry {user-modifiable variables}{107}
\entry {users, information about, printing}{219}
\entry {users, information about, retrieving}{201}
\entry {\code {USR1} signal}{172}
\initial {V}
\entry {values, numeric}{295}
\entry {values, string}{295}
\entry {variable typing}{85}
\entry {variables}{22, 295}
\entry {variables, assigning on command line}{76}
\entry {variables, built-in}{76, 107}
\entry {variables, built-in, \code {-v} option\comma {} setting with}{174}
\entry {variables, built-in, conveying information}{110}
\entry {variables, flag}{88}
\entry {variables, \code {getline} command into\comma {} using}{52, 53, 55}
\entry {variables, global, for library functions}{181}
\entry {variables, global, printing list of}{175}
\entry {variables, initializing}{76}
\entry {variables, names of}{116}
\entry {variables, private}{181}
\entry {variables, setting}{174}
\entry {variables, shadowing}{150}
\entry {variables, types of}{81}
\entry {variables, types of, comparison expressions and}{85}
\entry {variables, uninitialized\comma {} as array subscripts}{122}
\entry {variables, user-defined}{76}
\entry {vertical bar (\code {|})}{28}
\entry {vertical bar (\code {|}), \code {|} operator (I/O)}{54, 91}
\entry {vertical bar (\code {|}), \code {|&} I/O operator (I/O)}{166}
\entry {vertical bar (\code {|}), \code {|&} operator (I/O)}{55, 91}
\entry {vertical bar (\code {|}), \code {|&} operator (I/O), two-way communications}{169}
\entry {vertical bar (\code {|}), \code {||} operator}{88, 91}
\entry {\code {vname} internal variable}{283}
\initial {W}
\entry {\command {w} utility}{47}
\entry {Wall, Larry}{291}
\entry {warnings, issuing}{175}
\entry {\command {wc} utility}{228}
\entry {\code {wc.awk} program}{228}
\entry {Weinberger, Peter}{4, 258}
\entry {\code {while} statement}{24, 100}
\entry {whitespace, as field separators}{43}
\entry {whitespace, functions\comma {} calling}{127}
\entry {whitespace, newlines as}{176}
\entry {Williams, Kent}{258}
\entry {Woods, John}{258}
\entry {word boundaries\comma {} matching}{31}
\entry {word, regexp definition of}{31}
\entry {word-boundary operator (\command {gawk})}{31}
\entry {\code {wordfreq.awk} program}{238}
\entry {words, counting}{228}
\entry {words, duplicate\comma {} searching for}{230}
\entry {words, usage counts\comma {} generating}{237}
\initial {X}
\entry {\code {xgettext} utility}{160}
\entry {XOR bitwise operation}{147}
\entry {\code {xor} function (\command {gawk})}{147}
\initial {Z}
\entry {Zaretskii, Eli}{9}
\entry {zero\comma {} negative vs.\: positive}{298}
\entry {\code {zerofile.awk} program}{195}
\entry {Zoulas, Christos}{258}
