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