\entry{acronym}{1}{acronym}
\entry{history of awk}{1}{history of \code {awk}}
\entry{Aho, Alfred}{1}{Aho, Alfred}
\entry{Weinberger, Peter}{1}{Weinberger, Peter}
\entry{Kernighan, Brian}{1}{Kernighan, Brian}
\entry{old awk}{1}{old \code {awk}}
\entry{new awk}{1}{new \code {awk}}
\entry{Free Software Foundation}{1}{Free Software Foundation}
\entry{Stallman, Richard}{1}{Stallman, Richard}
\entry{GNU Project}{1}{GNU Project}
\entry{Linux}{2}{Linux}
\entry{NetBSD}{2}{NetBSD}
\entry{FreeBSD}{2}{FreeBSD}
\entry{Stallman, Richard}{3}{Stallman, Richard}
\entry{Trueman, David}{3}{Trueman, David}
\entry{Deifik, Scott}{3}{Deifik, Scott}
\entry{Hankerson, Darrel}{3}{Hankerson, Darrel}
\entry{Rommel, Kai Uwe}{3}{Rommel, Kai Uwe}
\entry{Rankin, Pat}{3}{Rankin, Pat}
\entry{Jaegermann, Michal}{3}{Jaegermann, Michal}
\entry{Friedl, Jeffrey}{4}{Friedl, Jeffrey}
\entry{Kernighan, Brian}{4}{Kernighan, Brian}
\entry{Hughes, Phil}{4}{Hughes, Phil}
\entry{Robbins, Miriam}{4}{Robbins, Miriam}
\entry{uses of awk}{5}{uses of \code {awk}}
\entry{book, using this}{5}{book, using this}
\entry{using this book}{5}{using this book}
\entry{language, awk}{5}{language, \code {awk}}
\entry{program, awk}{5}{program, \code {awk}}
\entry{d.c., see ``dark corner''}{6}{d.c., see ``dark corner''}
\entry{dark corner}{6}{dark corner}
\entry{input file, sample}{7}{input file, sample}
\entry{sample input file}{7}{sample input file}
\entry{BBS-list file}{7}{\file {BBS-list} file}
\entry{inventory-shipped file}{7}{\file {inventory-shipped} file}
\entry{script, definition of}{9}{script, definition of}
\entry{rule, definition of}{9}{rule, definition of}
\entry{program, definition of}{9}{program, definition of}
\entry{basic function of awk}{9}{basic function of \code {awk}}
\entry{data-driven languages}{9}{data-driven languages}
\entry{procedural languages}{9}{procedural languages}
\entry{language, data-driven}{9}{language, data-driven}
\entry{language, procedural}{9}{language, procedural}
\entry{program, definition of}{9}{program, definition of}
\entry{rule, definition of}{9}{rule, definition of}
\entry{old awk vs. new awk}{9}{old \code {awk} vs. new \code {awk}}
\entry{new awk vs. old awk}{9}{new \code {awk} vs. old \code {awk}}
\entry{command line formats}{10}{command line formats}
\entry{running awk programs}{10}{running \code {awk} programs}
\entry{single quotes, why needed}{10}{single quotes, why needed}
\entry{egrep}{10}{\code {egrep}}
\entry{standard input}{11}{standard input}
\entry{input, standard}{11}{input, standard}
\entry{quoting, shell}{11}{quoting, shell}
\entry{shell quoting}{11}{shell quoting}
\entry{running long programs}{11}{running long programs}
\entry{-f option}{11}{\code {-f} option}
\entry{program file}{11}{program file}
\entry{file, awk program}{11}{file, \code {awk} program}
\entry{quoting, shell}{12}{quoting, shell}
\entry{shell quoting}{12}{shell quoting}
\entry{executable scripts}{12}{executable scripts}
\entry{scripts, executable}{12}{scripts, executable}
\entry{self contained programs}{12}{self contained programs}
\entry{program, self contained}{12}{program, self contained}
\entry{#! (executable scripts)}{12}{\code {#!} (executable scripts)}
\entry{shell scripts}{12}{shell scripts}
\entry{scripts, shell}{12}{scripts, shell}
\entry{# (comment)}{13}{\code {#} (comment)}
\entry{comments}{13}{comments}
\entry{use of comments}{13}{use of comments}
\entry{documenting awk programs}{13}{documenting \code {awk} programs}
\entry{programs, documenting}{13}{programs, documenting}
\entry{action, default}{14}{action, default}
\entry{pattern, default}{14}{pattern, default}
\entry{default action}{14}{default action}
\entry{default pattern}{14}{default pattern}
\entry{empty action}{14}{empty action}
\entry{action, empty}{14}{action, empty}
\entry{how awk works}{14}{how \code {awk} works}
\entry{csh, backslash continuation}{15}{\code {csh}, backslash continuation}
\entry{backslash continuation in csh}{15}{backslash continuation in \code {csh}}
\entry{automatic initialization}{16}{automatic initialization}
\entry{initialization, automatic}{16}{initialization, automatic}
\entry{line break}{16}{line break}
\entry{newline}{16}{newline}
\entry{backslash continuation}{16}{backslash continuation}
\entry{continuation of lines}{16}{continuation of lines}
\entry{line continuation}{16}{line continuation}
\entry{portability issues}{17}{portability issues}
\entry{csh, backslash continuation}{17}{\code {csh}, backslash continuation}
\entry{backslash continuation in csh}{17}{backslash continuation in \code {csh}}
\entry{backslash continuation and comments}{17}{backslash continuation and comments}
\entry{comments and backslash continuation}{17}{comments and backslash continuation}
\entry{multiple statements on one line}{18}{multiple statements on one line}
\entry{when to use awk}{18}{when to use \code {awk}}
\entry{applications of awk}{18}{applications of \code {awk}}
\entry{one-liners}{21}{one-liners}
\entry{pattern, regular expressions}{23}{pattern, regular expressions}
\entry{regexp}{23}{regexp}
\entry{regular expression}{23}{regular expression}
\entry{regular expressions as patterns}{23}{regular expressions as patterns}
\entry{regexp matching operators}{23}{regexp matching operators}
\entry{string-matching operators}{23}{string-matching operators}
\entry{operators, string-matching}{23}{operators, string-matching}
\entry{operators, regexp matching}{23}{operators, regexp matching}
\entry{regexp match/non-match operators}{23}{regexp match/non-match operators}
\entry{{\tt\char 126} operator}{23}{\code {~} operator}
\entry{!{\tt\char 126} operator}{23}{\code {!~} operator}
\entry{regexp constant}{24}{regexp constant}
\entry{escape sequence notation}{24}{escape sequence notation}
\entry{awk language, V.4 version}{24}{\code {awk} language, V.4 version}
\entry{awk language, V.4 version}{25}{\code {awk} language, V.4 version}
\entry{awk language, V.4 version}{25}{\code {awk} language, V.4 version}
\entry{awk language, POSIX version}{25}{\code {awk} language, POSIX version}
\entry{POSIX awk}{25}{POSIX \code {awk}}
\entry{portability issues}{25}{portability issues}
\entry{dark corner}{26}{dark corner}
\entry{metacharacters}{26}{metacharacters}
\entry{regular expression metacharacters}{26}{regular expression metacharacters}
\entry{regexp operators}{26}{regexp operators}
\entry{anchors in regexps}{27}{anchors in regexps}
\entry{regexp, anchors}{27}{regexp, anchors}
\entry{awk language, POSIX version}{27}{\code {awk} language, POSIX version}
\entry{POSIX awk}{27}{POSIX \code {awk}}
\entry{character list}{27}{character list}
\entry{egrep}{28}{\code {egrep}}
\entry{character classes}{28}{character classes}
\entry{awk language, POSIX version}{28}{\code {awk} language, POSIX version}
\entry{POSIX awk}{28}{POSIX \code {awk}}
\entry{collating elements}{29}{collating elements}
\entry{collating symbols}{29}{collating symbols}
\entry{equivalence classes}{29}{equivalence classes}
\entry{complemented character list}{29}{complemented character list}
\entry{character list, complemented}{29}{character list, complemented}
\entry{awk language, POSIX version}{30}{\code {awk} language, POSIX version}
\entry{POSIX awk}{30}{POSIX \code {awk}}
\entry{interval expressions}{30}{interval expressions}
\entry{precedence, regexp operators}{31}{precedence, regexp operators}
\entry{regexp operators, precedence of}{31}{regexp operators, precedence of}
\entry{regexp operators, GNU specific}{31}{regexp operators, GNU specific}
\entry{word, regexp definition of}{31}{word, regexp definition of}
\entry{{\tt\indexbackslash }w regexp operator}{31}{\code {{\tt\rawbackslashxx }w} regexp operator}
\entry{{\tt\indexbackslash }W regexp operator}{31}{\code {{\tt\rawbackslashxx }W} regexp operator}
\entry{{\tt\indexbackslash }{\tt\less} regexp operator}{32}{\code {{\tt\rawbackslashxx }<} regexp operator}
\entry{{\tt\indexbackslash }{\tt\gtr} regexp operator}{32}{\code {{\tt\rawbackslashxx }>} regexp operator}
\entry{{\tt\indexbackslash }y regexp operator}{32}{\code {{\tt\rawbackslashxx }y} regexp operator}
\entry{word boundaries, matching}{32}{word boundaries, matching}
\entry{{\tt\indexbackslash }B regexp operator}{32}{\code {{\tt\rawbackslashxx }B} regexp operator}
\entry{buffer matching operators}{32}{buffer matching operators}
\entry{{\tt\indexbackslash }` regexp operator}{32}{\code {{\tt\rawbackslashxx }`} regexp operator}
\entry{{\tt\indexbackslash }' regexp operator}{32}{\code {{\tt\rawbackslashxx }'} regexp operator}
\entry{regexp, effect of command line options}{32}{regexp, effect of command line options}
\entry{case sensitivity}{33}{case sensitivity}
\entry{ignoring case}{33}{ignoring case}
\entry{differences between gawk and awk}{33}{differences between \code {gawk} and \code {awk}}
\entry{{\tt\char 126} operator}{33}{\code {~} operator}
\entry{!{\tt\char 126} operator}{33}{\code {!~} operator}
\entry{IGNORECASE}{33}{\code {IGNORECASE}}
\entry{ISO 8859-1}{34}{ISO 8859-1}
\entry{ISO Latin-1}{34}{ISO Latin-1}
\entry{leftmost longest match}{34}{leftmost longest match}
\entry{matching, leftmost longest}{34}{matching, leftmost longest}
\entry{computed regular expressions}{35}{computed regular expressions}
\entry{regular expressions, computed}{35}{regular expressions, computed}
\entry{dynamic regular expressions}{35}{dynamic regular expressions}
\entry{regexp, dynamic}{35}{regexp, dynamic}
\entry{{\tt\char 126} operator}{35}{\code {~} operator}
\entry{!{\tt\char 126} operator}{35}{\code {!~} operator}
\entry{regexp constants, difference between slashes and quotes}{35}{regexp constants, difference between slashes and quotes}
\entry{common mistakes}{35}{common mistakes}
\entry{mistakes, common}{35}{mistakes, common}
\entry{errors, common}{35}{errors, common}
\entry{reading files}{37}{reading files}
\entry{input}{37}{input}
\entry{standard input}{37}{standard input}
\entry{FILENAME}{37}{\code {FILENAME}}
\entry{record separator, RS}{37}{record separator, \code {RS}}
\entry{changing the record separator}{37}{changing the record separator}
\entry{record, definition of}{37}{record, definition of}
\entry{RS}{37}{\code {RS}}
\entry{dark corner}{39}{dark corner}
\entry{empty string}{39}{empty string}
\entry{RT}{39}{\code {RT}}
\entry{record terminator, RT}{39}{record terminator, \code {RT}}
\entry{terminator, record}{39}{terminator, record}
\entry{differences between gawk and awk}{39}{differences between \code {gawk} and \code {awk}}
\entry{regular expressions as record separators}{39}{regular expressions as record separators}
\entry{differences between gawk and awk}{39}{differences between \code {gawk} and \code {awk}}
\entry{number of records, NR, FNR}{40}{number of records, \code {NR}, \code {FNR}}
\entry{NR}{40}{\code {NR}}
\entry{FNR}{40}{\code {FNR}}
\entry{examining fields}{40}{examining fields}
\entry{fields}{40}{fields}
\entry{accessing fields}{40}{accessing fields}
\entry{$ (field operator)}{40}{\code {$} (field operator)}
\entry{field operator $}{40}{field operator \code {$}}
\entry{NF}{40}{\code {NF}}
\entry{number of fields, NF}{40}{number of fields, \code {NF}}
\entry{field, changing contents of}{42}{field, changing contents of}
\entry{changing contents of a field}{42}{changing contents of a field}
\entry{assignment to fields}{42}{assignment to fields}
\entry{FS}{44}{\code {FS}}
\entry{fields, separating}{44}{fields, separating}
\entry{field separator, FS}{44}{field separator, \code {FS}}
\entry{common mistakes}{44}{common mistakes}
\entry{mistakes, common}{44}{mistakes, common}
\entry{errors, common}{44}{errors, common}
\entry{field separator, choice of}{44}{field separator, choice of}
\entry{regular expressions as field separators}{44}{regular expressions as field separators}
\entry{null string}{46}{null string}
\entry{empty string}{46}{empty string}
\entry{differences between gawk and awk}{46}{differences between \code {gawk} and \code {awk}}
\entry{single character fields}{46}{single character fields}
\entry{dark corner}{46}{dark corner}
\entry{-F option}{46}{\code {-F} option}
\entry{field separator, on command line}{46}{field separator, on command line}
\entry{command line, setting FS on}{46}{command line, setting \code {FS} on}
\entry{historical features}{47}{historical features}
\entry{awk language, POSIX version}{48}{\code {awk} language, POSIX version}
\entry{POSIX awk}{48}{POSIX \code {awk}}
\entry{dark corner}{48}{dark corner}
\entry{sed utility}{48}{\code {sed} utility}
\entry{stream editor}{48}{stream editor}
\entry{multiple line records}{50}{multiple line records}
\entry{input, multiple line records}{50}{input, multiple line records}
\entry{reading files, multiple line records}{50}{reading files, multiple line records}
\entry{records, multiple line}{50}{records, multiple line}
\entry{leftmost longest match}{51}{leftmost longest match}
\entry{matching, leftmost longest}{51}{matching, leftmost longest}
\entry{dark corner}{51}{dark corner}
\entry{RT}{53}{\code {RT}}
\entry{getline}{53}{\code {getline}}
\entry{input, explicit}{53}{input, explicit}
\entry{explicit input}{53}{explicit input}
\entry{input, getline command}{53}{input, \code {getline} command}
\entry{reading files, getline command}{53}{reading files, \code {getline} command}
\entry{ERRNO}{53}{\code {ERRNO}}
\entry{differences between gawk and awk}{53}{differences between \code {gawk} and \code {awk}}
\entry{getline, return values}{53}{\code {getline}, return values}
\entry{dark corner}{54}{dark corner}
\entry{input redirection}{55}{input redirection}
\entry{redirection of input}{55}{redirection of input}
\entry{input pipeline}{56}{input pipeline}
\entry{pipeline, input}{56}{pipeline, input}
\entry{differences between gawk and awk}{58}{differences between \code {gawk} and \code {awk}}
\entry{limitations}{58}{limitations}
\entry{implementation limits}{58}{implementation limits}
\entry{FILENAME}{58}{\code {FILENAME}}
\entry{dark corner}{58}{dark corner}
\entry{getline, setting FILENAME}{58}{\code {getline}, setting \code {FILENAME}}
\entry{FILENAME, being set by getline}{58}{\code {FILENAME}, being set by \code {getline}}
\entry{printing}{59}{printing}
\entry{output}{59}{output}
\entry{print statement}{59}{\code {print} statement}
\entry{common mistakes}{60}{common mistakes}
\entry{mistakes, common}{60}{mistakes, common}
\entry{errors, common}{60}{errors, common}
\entry{line continuation}{61}{line continuation}
\entry{output field separator, OFS}{61}{output field separator, \code {OFS}}
\entry{output record separator, ORS}{61}{output record separator, \code {ORS}}
\entry{OFS}{61}{\code {OFS}}
\entry{ORS}{61}{\code {ORS}}
\entry{OFMT}{62}{\code {OFMT}}
\entry{numeric output format}{62}{numeric output format}
\entry{format, numeric output}{62}{format, numeric output}
\entry{output format specifier, OFMT}{62}{output format specifier, \code {OFMT}}
\entry{dark corner}{62}{dark corner}
\entry{awk language, POSIX version}{62}{\code {awk} language, POSIX version}
\entry{POSIX awk}{62}{POSIX \code {awk}}
\entry{formatted output}{62}{formatted output}
\entry{output, formatted}{62}{output, formatted}
\entry{printf statement, syntax of}{62}{\code {printf} statement, syntax of}
\entry{format string}{62}{format string}
\entry{printf, format-control characters}{63}{\code {printf}, format-control characters}
\entry{format specifier}{63}{format specifier}
\entry{dark corner}{64}{dark corner}
\entry{printf, modifiers}{64}{\code {printf}, modifiers}
\entry{modifiers (in format specifiers)}{64}{modifiers (in format specifiers)}
\entry{dark corner}{65}{dark corner}
\entry{awk language, POSIX version}{66}{\code {awk} language, POSIX version}
\entry{POSIX awk}{66}{POSIX \code {awk}}
\entry{output redirection}{67}{output redirection}
\entry{redirection of output}{67}{redirection of output}
\entry{pipes for output}{68}{pipes for output}
\entry{output, piping}{68}{output, piping}
\entry{differences between gawk and awk}{69}{differences between \code {gawk} and \code {awk}}
\entry{limitations}{69}{limitations}
\entry{implementation limits}{69}{implementation limits}
\entry{standard input}{69}{standard input}
\entry{standard output}{69}{standard output}
\entry{standard error output}{69}{standard error output}
\entry{file descriptors}{69}{file descriptors}
\entry{differences between gawk and awk}{69}{differences between \code {gawk} and \code {awk}}
\entry{/dev/stdin}{70}{\file {/dev/stdin}}
\entry{/dev/stdout}{70}{\file {/dev/stdout}}
\entry{/dev/stderr}{70}{\file {/dev/stderr}}
\entry{/dev/fd}{70}{\file {/dev/fd}}
\entry{process information}{70}{process information}
\entry{/dev/pid}{70}{\file {/dev/pid}}
\entry{/dev/pgrpid}{70}{\file {/dev/pgrpid}}
\entry{/dev/ppid}{70}{\file {/dev/ppid}}
\entry{/dev/user}{70}{\file {/dev/user}}
\entry{closing input files and pipes}{71}{closing input files and pipes}
\entry{closing output files and pipes}{71}{closing output files and pipes}
\entry{close}{71}{\code {close}}
\entry{ERRNO}{74}{\code {ERRNO}}
\entry{differences between gawk and awk}{74}{differences between \code {gawk} and \code {awk}}
\entry{differences between gawk and awk}{74}{differences between \code {gawk} and \code {awk}}
\entry{portability issues}{74}{portability issues}
\entry{expression}{75}{expression}
\entry{constants, types of}{75}{constants, types of}
\entry{string constants}{75}{string constants}
\entry{numeric constant}{75}{numeric constant}
\entry{numeric value}{75}{numeric value}
\entry{differences between gawk and awk}{75}{differences between \code {gawk} and \code {awk}}
\entry{{\tt\char 126} operator}{75}{\code {~} operator}
\entry{!{\tt\char 126} operator}{75}{\code {!~} operator}
\entry{dark corner}{76}{dark corner}
\entry{differences between gawk and awk}{76}{differences between \code {gawk} and \code {awk}}
\entry{dark corner}{76}{dark corner}
\entry{variables, user-defined}{77}{variables, user-defined}
\entry{user-defined variables}{77}{user-defined variables}
\entry{dark corner}{78}{dark corner}
\entry{conversion of strings and numbers}{79}{conversion of strings and numbers}
\entry{null string}{79}{null string}
\entry{empty string}{79}{empty string}
\entry{type conversion}{79}{type conversion}
\entry{CONVFMT}{79}{\code {CONVFMT}}
\entry{dark corner}{79}{dark corner}
\entry{awk language, POSIX version}{79}{\code {awk} language, POSIX version}
\entry{POSIX awk}{79}{POSIX \code {awk}}
\entry{OFMT}{79}{\code {OFMT}}
\entry{arithmetic operators}{80}{arithmetic operators}
\entry{operators, arithmetic}{80}{operators, arithmetic}
\entry{addition}{80}{addition}
\entry{subtraction}{80}{subtraction}
\entry{multiplication}{80}{multiplication}
\entry{division}{80}{division}
\entry{remainder}{80}{remainder}
\entry{quotient}{80}{quotient}
\entry{exponentiation}{80}{exponentiation}
\entry{awk language, POSIX version}{80}{\code {awk} language, POSIX version}
\entry{POSIX awk}{80}{POSIX \code {awk}}
\entry{differences between gawk and awk}{81}{differences between \code {gawk} and \code {awk}}
\entry{Kernighan, Brian}{81}{Kernighan, Brian}
\entry{string operators}{81}{string operators}
\entry{operators, string}{81}{operators, string}
\entry{concatenation}{81}{concatenation}
\entry{assignment operators}{82}{assignment operators}
\entry{operators, assignment}{82}{operators, assignment}
\entry{expression, assignment}{82}{expression, assignment}
\entry{side effect}{82}{side effect}
\entry{lvalue}{82}{lvalue}
\entry{rvalue}{82}{rvalue}
\entry{types of variables}{82}{types of variables}
\entry{Rankin, Pat}{83}{Rankin, Pat}
\entry{awk language, POSIX version}{84}{\code {awk} language, POSIX version}
\entry{POSIX awk}{84}{POSIX \code {awk}}
\entry{increment operators}{85}{increment operators}
\entry{operators, increment}{85}{operators, increment}
\entry{decrement operators}{85}{decrement operators}
\entry{operators, decrement}{85}{operators, decrement}
\entry{truth values}{86}{truth values}
\entry{logical true}{86}{logical true}
\entry{logical false}{86}{logical false}
\entry{null string}{86}{null string}
\entry{empty string}{86}{empty string}
\entry{dark corner}{86}{dark corner}
\entry{comparison expressions}{86}{comparison expressions}
\entry{expression, comparison}{86}{expression, comparison}
\entry{expression, matching}{86}{expression, matching}
\entry{relational operators}{86}{relational operators}
\entry{operators, relational}{86}{operators, relational}
\entry{regexp match/non-match operators}{86}{regexp match/non-match operators}
\entry{variable typing}{86}{variable typing}
\entry{types of variables}{86}{types of variables}
\entry{numeric string}{86}{numeric string}
\entry{relational operators}{87}{relational operators}
\entry{operators, relational}{87}{operators, relational}
\entry{{\tt\less} operator}{87}{\code {<} operator}
\entry{{\tt\less}= operator}{87}{\code {<=} operator}
\entry{{\tt\gtr} operator}{87}{\code {>} operator}
\entry{{\tt\gtr}= operator}{87}{\code {>=} operator}
\entry{== operator}{87}{\code {==} operator}
\entry{!= operator}{87}{\code {!=} operator}
\entry{{\tt\char 126} operator}{87}{\code {~} operator}
\entry{!{\tt\char 126} operator}{87}{\code {!~} operator}
\entry{in operator}{87}{\code {in} operator}
\entry{common mistakes}{87}{common mistakes}
\entry{mistakes, common}{87}{mistakes, common}
\entry{errors, common}{87}{errors, common}
\entry{comparisons, string vs. regexp}{88}{comparisons, string vs. regexp}
\entry{string comparison vs. regexp comparison}{88}{string comparison vs. regexp comparison}
\entry{regexp comparison vs. string comparison}{88}{regexp comparison vs. string comparison}
\entry{regexp as expression}{89}{regexp as expression}
\entry{expression, boolean}{89}{expression, boolean}
\entry{boolean expressions}{89}{boolean expressions}
\entry{operators, boolean}{89}{operators, boolean}
\entry{boolean operators}{89}{boolean operators}
\entry{logical operations}{89}{logical operations}
\entry{operations, logical}{89}{operations, logical}
\entry{short-circuit operators}{89}{short-circuit operators}
\entry{operators, short-circuit}{89}{operators, short-circuit}
\entry{and operator}{89}{and operator}
\entry{or operator}{89}{or operator}
\entry{not operator}{89}{not operator}
\entry{&& operator}{89}{\code {&&} operator}
\entry{{\tt\char 124}{\tt\char 124} operator}{89}{\code {||} operator}
\entry{! operator}{89}{\code {!} operator}
\entry{line continuation}{90}{line continuation}
\entry{conditional expression}{90}{conditional expression}
\entry{expression, conditional}{90}{expression, conditional}
\entry{differences between gawk and awk}{91}{differences between \code {gawk} and \code {awk}}
\entry{line continuation}{91}{line continuation}
\entry{function call}{91}{function call}
\entry{calling a function}{91}{calling a function}
\entry{arguments in function call}{91}{arguments in function call}
\entry{precedence}{92}{precedence}
\entry{operator precedence}{92}{operator precedence}
\entry{awk language, POSIX version}{93}{\code {awk} language, POSIX version}
\entry{POSIX awk}{93}{POSIX \code {awk}}
\entry{awk language, POSIX version}{93}{\code {awk} language, POSIX version}
\entry{POSIX awk}{93}{POSIX \code {awk}}
\entry{pattern, definition of}{95}{pattern, definition of}
\entry{patterns, types of}{95}{patterns, types of}
\entry{range pattern}{97}{range pattern}
\entry{pattern, range}{97}{pattern, range}
\entry{matching ranges of lines}{97}{matching ranges of lines}
\entry{skipping lines between markers}{98}{skipping lines between markers}
\entry{BEGIN special pattern}{98}{\code {BEGIN} special pattern}
\entry{pattern, BEGIN}{98}{pattern, \code {BEGIN}}
\entry{END special pattern}{98}{\code {END} special pattern}
\entry{pattern, END}{98}{pattern, \code {END}}
\entry{dark corner}{99}{dark corner}
\entry{I/O from BEGIN and END}{99}{I/O from \code {BEGIN} and \code {END}}
\entry{differences between gawk and awk}{100}{differences between \code {gawk} and \code {awk}}
\entry{empty pattern}{100}{empty pattern}
\entry{pattern, empty}{100}{pattern, empty}
\entry{action, definition of}{100}{action, definition of}
\entry{curly braces}{100}{curly braces}
\entry{action, curly braces}{100}{action, curly braces}
\entry{action, separating statements}{100}{action, separating statements}
\entry{control statement}{103}{control statement}
\entry{compound statement}{103}{compound statement}
\entry{statement, compound}{103}{statement, compound}
\entry{if-else statement}{103}{\code {if}-\code {else} statement}
\entry{while statement}{104}{\code {while} statement}
\entry{loop}{104}{loop}
\entry{body of a loop}{104}{body of a loop}
\entry{for statement}{105}{\code {for} statement}
\entry{break statement}{106}{\code {break} statement}
\entry{loops, exiting}{106}{loops, exiting}
\entry{break, outside of loops}{107}{\code {break}, outside of loops}
\entry{historical features}{107}{historical features}
\entry{awk language, POSIX version}{107}{\code {awk} language, POSIX version}
\entry{POSIX awk}{107}{POSIX \code {awk}}
\entry{dark corner}{107}{dark corner}
\entry{continue statement}{107}{\code {continue} statement}
\entry{continue, outside of loops}{108}{\code {continue}, outside of loops}
\entry{historical features}{108}{historical features}
\entry{awk language, POSIX version}{108}{\code {awk} language, POSIX version}
\entry{POSIX awk}{108}{POSIX \code {awk}}
\entry{dark corner}{108}{dark corner}
\entry{next statement}{108}{\code {next} statement}
\entry{awk language, POSIX version}{109}{\code {awk} language, POSIX version}
\entry{POSIX awk}{109}{POSIX \code {awk}}
\entry{next, inside a user-defined function}{109}{\code {next}, inside a user-defined function}
\entry{nextfile statement}{109}{\code {nextfile} statement}
\entry{differences between gawk and awk}{109}{differences between \code {gawk} and \code {awk}}
\entry{next file statement}{110}{\code {next file} statement}
\entry{exit statement}{110}{\code {exit} statement}
\entry{dark corner}{110}{dark corner}
\entry{built-in variables}{113}{built-in variables}
\entry{built-in variables, user modifiable}{113}{built-in variables, user modifiable}
\entry{CONVFMT}{113}{\code {CONVFMT}}
\entry{awk language, POSIX version}{113}{\code {awk} language, POSIX version}
\entry{POSIX awk}{113}{POSIX \code {awk}}
\entry{FIELDWIDTHS}{113}{\code {FIELDWIDTHS}}
\entry{FS}{113}{\code {FS}}
\entry{IGNORECASE}{114}{\code {IGNORECASE}}
\entry{OFMT}{114}{\code {OFMT}}
\entry{OFS}{114}{\code {OFS}}
\entry{ORS}{114}{\code {ORS}}
\entry{RS}{114}{\code {RS}}
\entry{SUBSEP}{114}{\code {SUBSEP}}
\entry{built-in variables, convey information}{115}{built-in variables, convey information}
\entry{ARGC}{115}{\code {ARGC}}
\entry{ARGV}{115}{\code {ARGV}}
\entry{ARGIND}{115}{\code {ARGIND}}
\entry{ENVIRON}{116}{\code {ENVIRON}}
\entry{ERRNO}{116}{\code {ERRNO}}
\entry{dark corner}{116}{dark corner}
\entry{FILENAME}{116}{\code {FILENAME}}
\entry{FNR}{116}{\code {FNR}}
\entry{NF}{116}{\code {NF}}
\entry{NR}{116}{\code {NR}}
\entry{RLENGTH}{116}{\code {RLENGTH}}
\entry{RSTART}{117}{\code {RSTART}}
\entry{RT}{117}{\code {RT}}
\entry{dark corner}{117}{dark corner}
\entry{differences between gawk and awk}{119}{differences between \code {gawk} and \code {awk}}
\entry{arrays}{121}{arrays}
\entry{arrays, definition of}{121}{arrays, definition of}
\entry{associative arrays}{121}{associative arrays}
\entry{arrays, associative}{121}{arrays, associative}
\entry{sparse arrays}{122}{sparse arrays}
\entry{arrays, sparse}{122}{arrays, sparse}
\entry{Array subscripts and IGNORECASE}{122}{Array subscripts and \code {IGNORECASE}}
\entry{IGNORECASE and array subscripts}{122}{\code {IGNORECASE} and array subscripts}
\entry{IGNORECASE}{122}{\code {IGNORECASE}}
\entry{array reference}{122}{array reference}
\entry{element of array}{122}{element of array}
\entry{reference to array}{122}{reference to array}
\entry{arrays, presence of elements}{123}{arrays, presence of elements}
\entry{arrays, the in operator}{123}{arrays, the \code {in} operator}
\entry{array assignment}{123}{array assignment}
\entry{element assignment}{123}{element assignment}
\entry{for (x in ...{})}{124}{\code {for (x in \dots {})}}
\entry{arrays, special for statement}{124}{arrays, special \code {for} statement}
\entry{scanning an array}{124}{scanning an array}
\entry{delete statement}{125}{\code {delete} statement}
\entry{deleting elements of arrays}{125}{deleting elements of arrays}
\entry{removing elements of arrays}{125}{removing elements of arrays}
\entry{arrays, deleting an element}{125}{arrays, deleting an element}
\entry{arrays, deleting entire contents}{126}{arrays, deleting entire contents}
\entry{deleting entire arrays}{126}{deleting entire arrays}
\entry{differences between gawk and awk}{126}{differences between \code {gawk} and \code {awk}}
\entry{portability issues}{126}{portability issues}
\entry{Brennan, Michael}{126}{Brennan, Michael}
\entry{conversions, during subscripting}{127}{conversions, during subscripting}
\entry{numbers, used as subscripts}{127}{numbers, used as subscripts}
\entry{CONVFMT}{127}{\code {CONVFMT}}
\entry{uninitialized variables, as array subscripts}{127}{uninitialized variables, as array subscripts}
\entry{array subscripts, uninitialized variables}{127}{array subscripts, uninitialized variables}
\entry{null string, as array subscript}{128}{null string, as array subscript}
\entry{dark corner}{128}{dark corner}
\entry{subscripts in arrays}{128}{subscripts in arrays}
\entry{arrays, multi-dimensional subscripts}{128}{arrays, multi-dimensional subscripts}
\entry{multi-dimensional subscripts}{128}{multi-dimensional subscripts}
\entry{SUBSEP}{128}{\code {SUBSEP}}
\entry{built-in functions}{133}{built-in functions}
\entry{differences between gawk and awk}{133}{differences between \code {gawk} and \code {awk}}
\entry{evaluation, order of}{133}{evaluation, order of}
\entry{order of evaluation}{133}{order of evaluation}
\entry{int}{134}{\code {int}}
\entry{sqrt}{134}{\code {sqrt}}
\entry{exp}{134}{\code {exp}}
\entry{log}{134}{\code {log}}
\entry{sin}{134}{\code {sin}}
\entry{cos}{134}{\code {cos}}
\entry{atan2}{134}{\code {atan2}}
\entry{rand}{134}{\code {rand}}
\entry{seed for random numbers}{135}{seed for random numbers}
\entry{random numbers, seed of}{135}{random numbers, seed of}
\entry{srand}{135}{\code {srand}}
\entry{index}{135}{\code {index}}
\entry{length}{136}{\code {length}}
\entry{historical features}{136}{historical features}
\entry{portability issues}{136}{portability issues}
\entry{awk language, POSIX version}{136}{\code {awk} language, POSIX version}
\entry{POSIX awk}{136}{POSIX \code {awk}}
\entry{match}{136}{\code {match}}
\entry{RSTART}{136}{\code {RSTART}}
\entry{RLENGTH}{136}{\code {RLENGTH}}
\entry{split}{137}{\code {split}}
\entry{differences between gawk and awk}{137}{differences between \code {gawk} and \code {awk}}
\entry{dark corner}{137}{dark corner}
\entry{sprintf}{137}{\code {sprintf}}
\entry{sub}{138}{\code {sub}}
\entry{sub, third argument of}{139}{\code {sub}, third argument of}
\entry{gsub, third argument of}{139}{\code {gsub}, third argument of}
\entry{gsub}{139}{\code {gsub}}
\entry{gensub}{139}{\code {gensub}}
\entry{differences between gawk and awk}{140}{differences between \code {gawk} and \code {awk}}
\entry{substr}{140}{\code {substr}}
\entry{case conversion}{141}{case conversion}
\entry{conversion of case}{141}{conversion of case}
\entry{tolower}{141}{\code {tolower}}
\entry{toupper}{141}{\code {toupper}}
\entry{escape processing, sub et. al.}{141}{escape processing, \code {sub} et. al.}
\entry{awk language, POSIX version}{142}{\code {awk} language, POSIX version}
\entry{POSIX awk}{142}{POSIX \code {awk}}
\entry{close}{143}{\code {close}}
\entry{fflush}{144}{\code {fflush}}
\entry{portability issues}{144}{portability issues}
\entry{flushing buffers}{144}{flushing buffers}
\entry{buffers, flushing}{144}{buffers, flushing}
\entry{buffering output}{144}{buffering output}
\entry{output, buffering}{144}{output, buffering}
\entry{system}{144}{\code {system}}
\entry{interaction, awk and other programs}{144}{interaction, \code {awk} and other programs}
\entry{buffering, interactive vs. non-interactive}{145}{buffering, interactive vs. non-interactive}
\entry{buffering, non-interactive vs. interactive}{145}{buffering, non-interactive vs. interactive}
\entry{interactive buffering vs. non-interactive}{145}{interactive buffering vs. non-interactive}
\entry{non-interactive buffering vs. interactive}{145}{non-interactive buffering vs. interactive}
\entry{flushing buffers}{145}{flushing buffers}
\entry{buffers, flushing}{145}{buffers, flushing}
\entry{buffering output}{145}{buffering output}
\entry{output, buffering}{145}{output, buffering}
\entry{timestamps}{146}{timestamps}
\entry{time of day}{146}{time of day}
\entry{systime}{146}{\code {systime}}
\entry{strftime}{147}{\code {strftime}}
\entry{locale, definition of}{148}{locale, definition of}
\entry{ISO 8601}{149}{ISO 8601}
\entry{RFC-822}{149}{RFC-822}
\entry{RFC-1036}{149}{RFC-1036}
\entry{user-defined functions}{151}{user-defined functions}
\entry{functions, user-defined}{151}{functions, user-defined}
\entry{defining functions}{151}{defining functions}
\entry{function definition}{151}{function definition}
\entry{names, use of}{151}{names, use of}
\entry{namespaces}{151}{namespaces}
\entry{variable shadowing}{152}{variable shadowing}
\entry{recursive function}{152}{recursive function}
\entry{function, recursive}{152}{function, recursive}
\entry{awk language, POSIX version}{152}{\code {awk} language, POSIX version}
\entry{POSIX awk}{152}{POSIX \code {awk}}
\entry{portability issues}{152}{portability issues}
\entry{call by value}{154}{call by value}
\entry{call by reference}{154}{call by reference}
\entry{calling a function}{154}{calling a function}
\entry{function call}{154}{function call}
\entry{call by value}{154}{call by value}
\entry{call by reference}{155}{call by reference}
\entry{undefined functions}{155}{undefined functions}
\entry{functions, undefined}{155}{functions, undefined}
\entry{return statement}{156}{\code {return} statement}
\entry{command line}{159}{command line}
\entry{invocation of gawk}{159}{invocation of \code {gawk}}
\entry{arguments, command line}{159}{arguments, command line}
\entry{options, command line}{159}{options, command line}
\entry{long options}{159}{long options}
\entry{options, long}{159}{options, long}
\entry{empty program}{159}{empty program}
\entry{dark corner}{159}{dark corner}
\entry{-F option}{159}{\code {-F} option}
\entry{--field-separator option}{159}{\code {--field-separator} option}
\entry{-f option}{159}{\code {-f} option}
\entry{--file option}{159}{\code {--file} option}
\entry{-v option}{159}{\code {-v} option}
\entry{--assign option}{159}{\code {--assign} option}
\entry{-W option}{160}{\code {-W} option}
\entry{--compat option}{160}{\code {--compat} option}
\entry{--traditional option}{160}{\code {--traditional} option}
\entry{compatibility mode}{160}{compatibility mode}
\entry{--copyleft option}{160}{\code {--copyleft} option}
\entry{--copyright option}{160}{\code {--copyright} option}
\entry{--help option}{161}{\code {--help} option}
\entry{--usage option}{161}{\code {--usage} option}
\entry{--lint option}{161}{\code {--lint} option}
\entry{--lint-old option}{161}{\code {--lint-old} option}
\entry{--posix option}{161}{\code {--posix} option}
\entry{POSIX mode}{161}{POSIX mode}
\entry{--source option}{162}{\code {--source} option}
\entry{--version option}{162}{\code {--version} option}
\entry{POSIXLY{\_}CORRECT environment variable}{162}{\code {POSIXLY_CORRECT} environment variable}
\entry{environment variable, POSIXLY{\_}CORRECT}{162}{environment variable, \code {POSIXLY_CORRECT}}
\entry{ARGIND}{163}{\code {ARGIND}}
\entry{ARGV}{163}{\code {ARGV}}
\entry{dark corner}{163}{dark corner}
\entry{multiple passes over data}{164}{multiple passes over data}
\entry{passes, multiple}{164}{passes, multiple}
\entry{AWKPATH environment variable}{164}{\code {AWKPATH} environment variable}
\entry{environment variable, AWKPATH}{164}{environment variable, \code {AWKPATH}}
\entry{search path}{164}{search path}
\entry{directory search}{164}{directory search}
\entry{path, search}{164}{path, search}
\entry{differences between gawk and awk}{164}{differences between \code {gawk} and \code {awk}}
\entry{search path, for source files}{164}{search path, for source files}
\entry{deprecated options}{165}{deprecated options}
\entry{obsolete options}{165}{obsolete options}
\entry{deprecated features}{165}{deprecated features}
\entry{obsolete features}{165}{obsolete features}
\entry{undocumented features}{165}{undocumented features}
\entry{bugs, known in gawk}{165}{bugs, known in \code {gawk}}
\entry{known bugs}{165}{known bugs}
\entry{portability issues}{167}{portability issues}
\entry{skipping input files}{167}{skipping input files}
\entry{input files, skipping}{167}{input files, skipping}
\entry{nextfile function}{168}{\code {nextfile} function}
\entry{assertions}{169}{assertions}
\entry{assert, C version}{169}{\code {assert}, C version}
\entry{assert}{170}{\code {assert}}
\entry{rounding}{171}{rounding}
\entry{round}{171}{\code {round}}
\entry{numeric character values}{172}{numeric character values}
\entry{values of characters as numbers}{172}{values of characters as numbers}
\entry{ord}{172}{\code {ord}}
\entry{chr}{172}{\code {chr}}
\entry{character sets}{173}{character sets}
\entry{character encodings}{173}{character encodings}
\entry{ASCII}{173}{ASCII}
\entry{EBCDIC}{173}{EBCDIC}
\entry{mark parity}{173}{mark parity}
\entry{merging strings}{174}{merging strings}
\entry{join}{174}{\code {join}}
\entry{converting dates to timestamps}{175}{converting dates to timestamps}
\entry{dates, converting to timestamps}{175}{dates, converting to timestamps}
\entry{timestamps, converting from dates}{175}{timestamps, converting from dates}
\entry{{\_}tm{\_}isleap}{176}{\code {_tm_isleap}}
\entry{{\_}tm{\_}addup}{177}{\code {_tm_addup}}
\entry{mktime}{178}{\code {mktime}}
\entry{formatted timestamps}{180}{formatted timestamps}
\entry{timestamps, formatted}{180}{timestamps, formatted}
\entry{gettimeofday}{180}{\code {gettimeofday}}
\entry{per file initialization and clean-up}{182}{per file initialization and clean-up}
\entry{beginfile}{183}{\code {beginfile}}
\entry{endfile}{183}{\code {endfile}}
\entry{getopt, C version}{184}{\code {getopt}, C version}
\entry{processing arguments}{184}{processing arguments}
\entry{argument processing}{184}{argument processing}
\entry{getopt}{186}{\code {getopt}}
\entry{/dev/user}{189}{\file {/dev/user}}
\entry{getpwent, C version}{189}{\code {getpwent}, C version}
\entry{user information}{189}{user information}
\entry{login information}{189}{login information}
\entry{account information}{189}{account information}
\entry{password file}{189}{password file}
\entry{pwcat program}{189}{\code {pwcat} program}
\entry{pwcat.c}{190}{\code {pwcat.c}}
\entry{{\_}pw{\_}init}{191}{\code {_pw_init}}
\entry{getpwnam}{192}{\code {getpwnam}}
\entry{getpwuid}{193}{\code {getpwuid}}
\entry{getpwent}{193}{\code {getpwent}}
\entry{endpwent}{193}{\code {endpwent}}
\entry{getgrent, C version}{194}{\code {getgrent}, C version}
\entry{group information}{194}{group information}
\entry{account information}{194}{account information}
\entry{group file}{194}{group file}
\entry{grcat program}{194}{\code {grcat} program}
\entry{grcat.c}{194}{\code {grcat.c}}
\entry{{\_}gr{\_}init}{195}{\code {_gr_init}}
\entry{getgrnam}{197}{\code {getgrnam}}
\entry{getgrgid}{197}{\code {getgrgid}}
\entry{getgruser}{198}{\code {getgruser}}
\entry{getgrent}{198}{\code {getgrent}}
\entry{endgrent}{198}{\code {endgrent}}
\entry{namespace issues in awk}{199}{namespace issues in \code {awk}}
\entry{documenting awk programs}{199}{documenting \code {awk} programs}
\entry{programs, documenting}{199}{programs, documenting}
\entry{Tcl}{200}{Tcl}
\entry{cut utility}{201}{\code {cut} utility}
\entry{cut.awk}{202}{\code {cut.awk}}
\entry{egrep utility}{206}{\code {egrep} utility}
\entry{egrep.awk}{207}{\code {egrep.awk}}
\entry{backslash continuation}{210}{backslash continuation}
\entry{id utility}{210}{\code {id} utility}
\entry{id.awk}{211}{\code {id.awk}}
\entry{split utility}{212}{\code {split} utility}
\entry{split.awk}{213}{\code {split.awk}}
\entry{tee utility}{214}{\code {tee} utility}
\entry{tee.awk}{214}{\code {tee.awk}}
\entry{uniq utility}{216}{\code {uniq} utility}
\entry{uniq.awk}{217}{\code {uniq.awk}}
\entry{wc utility}{220}{\code {wc} utility}
\entry{wc.awk}{221}{\code {wc.awk}}
\entry{dupword.awk}{223}{\code {dupword.awk}}
\entry{alarm.awk}{224}{\code {alarm.awk}}
\entry{translate.awk}{227}{\code {translate.awk}}
\entry{labels.awk}{229}{\code {labels.awk}}
\entry{wordfreq.sh}{231}{\code {wordfreq.sh}}
\entry{Rakitzis, Byron}{233}{Rakitzis, Byron}
\entry{histsort.awk}{233}{\code {histsort.awk}}
\entry{extract.awk}{234}{\code {extract.awk}}
\entry{sed utility}{237}{\code {sed} utility}
\entry{Brennan, Michael}{237}{Brennan, Michael}
\entry{awksed}{237}{\code {awksed}}
\entry{simple stream editor}{237}{simple stream editor}
\entry{stream editor, simple}{237}{stream editor, simple}
\entry{sed utility}{241}{\code {sed} utility}
\entry{igawk.sh}{241}{\code {igawk.sh}}
\entry{awk language, V.4 version}{248}{\code {awk} language, V.4 version}
\entry{Kernighan, Brian}{249}{Kernighan, Brian}
\entry{compatibility mode}{249}{compatibility mode}
\entry{historical features}{271}{historical features}
\entry{getting gawk}{273}{getting \code {gawk}}
\entry{anonymous ftp}{273}{anonymous \code {ftp}}
\entry{ftp, anonymous}{273}{\code {ftp}, anonymous}
\entry{Free Software Foundation}{273}{Free Software Foundation}
\entry{Free Software Foundation}{273}{Free Software Foundation}
\entry{artificial intelligence, using gawk}{276}{artificial intelligence, using \code {gawk}}
\entry{AI programming, using gawk}{276}{AI programming, using \code {gawk}}
\entry{installation, unix}{278}{installation, unix}
\entry{configuring gawk}{279}{configuring \code {gawk}}
\entry{custom.h configuration file}{279}{\code {custom.h} configuration file}
\entry{installation, vms}{279}{installation, vms}
\entry{installation, MS-DOS and OS/2}{282}{installation, MS-DOS and OS/2}
\entry{atari}{283}{atari}
\entry{installation, atari}{283}{installation, atari}
\entry{Linux}{283}{Linux}
\entry{amiga}{285}{amiga}
\entry{installation, amiga}{285}{installation, amiga}
\entry{comp.lang.awk}{286}{\code {comp.lang.awk}}
\entry{Deifik, Scott}{287}{Deifik, Scott}
\entry{Fish, Fred}{287}{Fish, Fred}
\entry{Hankerson, Darrel}{287}{Hankerson, Darrel}
\entry{Jaegermann, Michal}{287}{Jaegermann, Michal}
\entry{Rankin, Pat}{287}{Rankin, Pat}
\entry{Rommel, Kai Uwe}{287}{Rommel, Kai Uwe}
\entry{Brennan, Michael}{287}{Brennan, Michael}
\entry{Kernighan, Brian}{287}{Kernighan, Brian}
\entry{anonymous ftp}{287}{anonymous \code {ftp}}
\entry{ftp, anonymous}{287}{\code {ftp}, anonymous}
\entry{Brennan, Michael}{287}{Brennan, Michael}
\entry{mawk}{287}{\code {mawk}}
\entry{adding new features}{289}{adding new features}
\entry{features, adding}{289}{features, adding}
\entry{gawk coding style}{290}{\code {gawk} coding style}
\entry{coding style used in gawk}{290}{coding style used in \code {gawk}}
\entry{porting gawk}{291}{porting \code {gawk}}
\entry{PERL}{293}{PERL}
\entry{Wall, Larry}{293}{Wall, Larry}
\entry{ISO 8859-1}{296}{ISO 8859-1}
\entry{ISO Latin-1}{296}{ISO Latin-1}
