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