\entry{uses of awk}{3}{uses of \command {awk}}
\entry{applications of awk}{3}{applications of \command {awk}}
\entry{uses of gawk}{3}{uses of \command {gawk}}
\entry{recipe for a programming language}{4}{recipe for a programming language}
\entry{programming language, recipe for}{4}{programming language, recipe for}
\entry{acronym}{4}{acronym}
\entry{history of awk}{4}{history of \command {awk}}
\entry{Aho, Alfred}{4}{Aho, Alfred}
\entry{Weinberger, Peter}{4}{Weinberger, Peter}
\entry{Kernighan, Brian}{4}{Kernighan, Brian}
\entry{old awk}{4}{old \command {awk}}
\entry{new awk}{4}{new \command {awk}}
\entry{Rubin, Paul}{4}{Rubin, Paul}
\entry{Fenlason, Jay}{4}{Fenlason, Jay}
\entry{Trueman, David}{4}{Trueman, David}
\entry{old awk vs. new awk}{4}{old \command {awk} vs. new \command {awk}}
\entry{new awk vs. old awk}{4}{new \command {awk} vs. old \command {awk}}
\entry{book, using this}{5}{book, using this}
\entry{using this book}{5}{using this book}
\entry{language, awk}{5}{language, \command {awk}}
\entry{program, awk}{5}{program, \command {awk}}
\entry{Brandon, Dick}{5}{Brandon, Dick}
\entry{sex, comparisons with}{5}{sex, comparisons with}
\entry{Texinfo}{7}{Texinfo}
\entry{Kernighan, Brian}{8}{Kernighan, Brian}
\entry{d.c., see ``dark corner''}{8}{d.c., see ``dark corner''}
\entry{dark corner}{8}{dark corner}
\entry{Torvalds, Linus}{8}{Torvalds, Linus}
\entry{sex, comparisons with}{8}{sex, comparisons with}
\entry{FSF}{8}{FSF}
\entry{Free Software Foundation}{8}{Free Software Foundation}
\entry{Stallman, Richard}{8}{Stallman, Richard}
\entry{GNU Project}{8}{GNU Project}
\entry{GPL}{8}{GPL}
\entry{General Public License}{8}{General Public License}
\entry{GNU General Public License}{8}{GNU General Public License}
\entry{online documentation}{8}{online documentation}
\entry{documentation, online}{8}{documentation, online}
\entry{Linux}{8}{Linux}
\entry{GNU/Linux}{8}{GNU/Linux}
\entry{BSD-based operating systems}{8}{BSD-based operating systems}
\entry{NetBSD}{8}{NetBSD}
\entry{FreeBSD}{8}{FreeBSD}
\entry{OpenBSD}{8}{OpenBSD}
\entry{Close, Diane}{9}{Close, Diane}
\entry{Stallman, Richard}{10}{Stallman, Richard}
\entry{Berry, Karl}{10}{Berry, Karl}
\entry{Chassell, Robert J.\spacefactor =1000 }{10}{Chassell, Robert J.\spacefactor =1000 }
\entry{Texinfo}{10}{Texinfo}
\entry{Hartholz, Marshall}{10}{Hartholz, Marshall}
\entry{Hartholz, Elaine}{10}{Hartholz, Elaine}
\entry{Schreiber, Bert}{10}{Schreiber, Bert}
\entry{Schreiber, Rita}{10}{Schreiber, Rita}
\entry{Hughes, Phil}{10}{Hughes, Phil}
\entry{Trueman, David}{10}{Trueman, David}
\entry{Drepper, Ulrich}{10}{Drepper, Ulrich}
\entry{GNITS mailing list}{10}{GNITS mailing list}
\entry{Beebe, Nelson}{10}{Beebe, Nelson}
\entry{Brown, Martin}{10}{Brown, Martin}
\entry{Deifik, Scott}{10}{Deifik, Scott}
\entry{Hankerson, Darrel}{10}{Hankerson, Darrel}
\entry{Jaegermann, Michal}{10}{Jaegermann, Michal}
\entry{Kahrs, Jurgen}{10}{Kahrs, J\"urgen}
\entry{Rankin, Pat}{10}{Rankin, Pat}
\entry{Rommel, Kai Uwe}{10}{Rommel, Kai Uwe}
\entry{Zaretskii, Eli}{10}{Zaretskii, Eli}
\entry{Kernighan, Brian}{11}{Kernighan, Brian}
\entry{Robbins, Miriam}{11}{Robbins, Miriam}
\entry{Robbins, Jean}{11}{Robbins, Jean}
\entry{Robbins, Harry}{11}{Robbins, Harry}
\entry{G-d}{11}{G-d}
\entry{script, definition of}{13}{script, definition of}
\entry{rule, definition of}{13}{rule, definition of}
\entry{program, definition of}{13}{program, definition of}
\entry{basic function of awk}{13}{basic function of \command {awk}}
\entry{data-driven languages}{13}{data-driven languages}
\entry{procedural languages}{13}{procedural languages}
\entry{language, data-driven}{13}{language, data-driven}
\entry{language, procedural}{13}{language, procedural}
\entry{program, definition of}{13}{program, definition of}
\entry{rule, definition of}{13}{rule, definition of}
\entry{command-line formats}{13}{command-line formats}
\entry{running awk programs}{13}{running \command {awk} programs}
\entry{single quotes, why needed}{13}{single quotes, why needed}
\entry{standard input}{14}{standard input}
\entry{input, standard}{14}{input, standard}
\entry{quoting, shell}{14}{quoting, shell}
\entry{shell quoting}{14}{shell quoting}
\entry{running long programs}{15}{running long programs}
\entry{-f option}{15}{\code {-f} option}
\entry{command-line option, -f}{15}{command-line option, \code {-f}}
\entry{program file}{15}{program file}
\entry{file, awk program}{15}{file, \command {awk} program}
\entry{quoting, shell}{15}{quoting, shell}
\entry{shell quoting}{15}{shell quoting}
\entry{executable scripts}{15}{executable scripts}
\entry{scripts, executable}{15}{scripts, executable}
\entry{self-contained programs}{15}{self-contained programs}
\entry{program, self-contained}{15}{program, self-contained}
\entry{#! (executable scripts)}{15}{\code {#!} (executable scripts)}
\entry{advanced notes}{16}{advanced notes}
\entry{portability issues}{16}{portability issues}
\entry{# (comment)}{16}{\code {#} (comment)}
\entry{comments}{16}{comments}
\entry{use of comments}{16}{use of comments}
\entry{documenting awk programs}{16}{documenting \command {awk} programs}
\entry{programs, documenting}{16}{programs, documenting}
\entry{quoting, shell}{17}{quoting, shell}
\entry{shell quoting}{17}{shell quoting}
\entry{quoting rules, shell}{17}{quoting rules, shell}
\entry{shell quoting rules}{17}{shell quoting rules}
\entry{csh utility}{17}{\command {csh} utility}
\entry{shell quoting, tricks}{18}{shell quoting, tricks}
\entry{input file, sample}{19}{input file, sample}
\entry{sample input files}{19}{sample input files}
\entry{BBS-list file}{19}{\file {BBS-list} file}
\entry{inventory-shipped file}{19}{\file {inventory-shipped} file}
\entry{action, default}{20}{action, default}
\entry{pattern, default}{20}{pattern, default}
\entry{default action}{20}{default action}
\entry{default pattern}{20}{default pattern}
\entry{empty action}{20}{empty action}
\entry{action, empty}{20}{action, empty}
\entry{one-liners}{20}{one-liners}
\entry{expand utility}{21}{\command {expand} utility}
\entry{how awk works}{22}{how \command {awk} works}
\entry{csh utility}{23}{\command {csh} utility}
\entry{csh, backslash continuation}{23}{\command {csh}, backslash continuation}
\entry{backslash continuation, in csh}{23}{backslash continuation, in \command {csh}}
\entry{ls utility}{23}{\command {ls} utility}
\entry{automatic initialization}{23}{automatic initialization}
\entry{initialization, automatic}{23}{initialization, automatic}
\entry{line break}{24}{line break}
\entry{newline}{24}{newline}
\entry{backslash continuation}{24}{backslash continuation}
\entry{continuation of lines}{24}{continuation of lines}
\entry{line continuation}{24}{line continuation}
\entry{portability issues}{24}{portability issues}
\entry{csh utility}{24}{\command {csh} utility}
\entry{csh, backslash continuation}{24}{\command {csh}, backslash continuation}
\entry{backslash continuation, in csh}{24}{backslash continuation, in \command {csh}}
\entry{backslash continuation, and comments}{25}{backslash continuation, and comments}
\entry{comments and backslash continuation}{25}{comments and backslash continuation}
\entry{multiple statements on one line}{25}{multiple statements on one line}
\entry{uses of awk}{26}{uses of \command {awk}}
\entry{applications of awk}{26}{applications of \command {awk}}
\entry{pattern, regular expressions}{29}{pattern, regular expressions}
\entry{regexp}{29}{regexp}
\entry{regular expression}{29}{regular expression}
\entry{regular expressions as patterns}{29}{regular expressions as patterns}
\entry{regexp operators}{29}{regexp operators}
\entry{string-matching operators}{29}{string-matching operators}
\entry{operators, string-matching}{29}{operators, string-matching}
\entry{operators, regexp matching}{29}{operators, regexp matching}
\entry{{\tt\char 126} operator}{29}{\code {~} operator}
\entry{!{\tt\char 126} operator}{29}{\code {!~} operator}
\entry{regexp constant}{30}{regexp constant}
\entry{escape sequence notation}{30}{escape sequence notation}
\entry{awk language, V.4 version}{30}{\command {awk} language, V.4 version}
\entry{{\tt\indexbackslash }a escape sequence}{30}{\code {{\tt\rawbackslashxx }a} escape sequence}
\entry{{\tt\indexbackslash }b escape sequence}{30}{\code {{\tt\rawbackslashxx }b} escape sequence}
\entry{{\tt\indexbackslash }f escape sequence}{31}{\code {{\tt\rawbackslashxx }f} escape sequence}
\entry{{\tt\indexbackslash }n escape sequence}{31}{\code {{\tt\rawbackslashxx }n} escape sequence}
\entry{{\tt\indexbackslash }r escape sequence}{31}{\code {{\tt\rawbackslashxx }r} escape sequence}
\entry{{\tt\indexbackslash }t escape sequence}{31}{\code {{\tt\rawbackslashxx }t} escape sequence}
\entry{awk language, V.4 version}{31}{\command {awk} language, V.4 version}
\entry{{\tt\indexbackslash }v escape sequence}{31}{\code {{\tt\rawbackslashxx }v} escape sequence}
\entry{{\tt\indexbackslash }nnn escape sequence (octal)}{31}{\code {{\tt\rawbackslashxx }}\var {nnn} escape sequence (octal)}
\entry{{\tt\indexbackslash }x escape sequence}{31}{\code {{\tt\rawbackslashxx }x} escape sequence}
\entry{awk language, V.4 version}{31}{\command {awk} language, V.4 version}
\entry{awk language, POSIX version}{31}{\command {awk} language, POSIX version}
\entry{POSIX awk}{31}{POSIX \command {awk}}
\entry{{\tt\indexbackslash }/ escape sequence}{31}{\code {{\tt\rawbackslashxx }/} escape sequence}
\entry{{\tt\indexbackslash }{\tt\char 34} escape sequence}{31}{\code {{\tt\rawbackslashxx }"} escape sequence}
\entry{portability issues}{31}{portability issues}
\entry{advanced notes}{32}{advanced notes}
\entry{common mistakes}{32}{common mistakes}
\entry{mistakes, common}{32}{mistakes, common}
\entry{errors, common}{32}{errors, common}
\entry{automatic warnings}{32}{automatic warnings}
\entry{warnings, automatic}{32}{warnings, automatic}
\entry{advanced notes}{32}{advanced notes}
\entry{dark corner}{32}{dark corner}
\entry{metacharacters}{32}{metacharacters}
\entry{regular expression metacharacters}{32}{regular expression metacharacters}
\entry{regexp operators}{32}{regexp operators}
\entry{anchors in regexps}{33}{anchors in regexps}
\entry{regexp, anchors}{33}{regexp, anchors}
\entry{Texinfo}{33}{Texinfo}
\entry{awk language, POSIX version}{33}{\command {awk} language, POSIX version}
\entry{POSIX awk}{33}{POSIX \command {awk}}
\entry{character list}{33}{character list}
\entry{character set (regexp component)}{33}{character set (regexp component)}
\entry{character class}{33}{character class}
\entry{bracket expression}{33}{bracket expression}
\entry{complemented character list}{33}{complemented character list}
\entry{character list, complemented}{33}{character list, complemented}
\entry{Texinfo}{34}{Texinfo}
\entry{awk language, POSIX version}{34}{\command {awk} language, POSIX version}
\entry{POSIX awk}{34}{POSIX \command {awk}}
\entry{interval expressions}{34}{interval expressions}
\entry{precedence, regexp operators}{35}{precedence, regexp operators}
\entry{regexp operators, precedence of}{35}{regexp operators, precedence of}
\entry{egrep utility}{35}{\command {egrep} utility}
\entry{character class}{36}{character class}
\entry{awk language, POSIX version}{36}{\command {awk} language, POSIX version}
\entry{POSIX awk}{36}{POSIX \command {awk}}
\entry{collating elements}{36}{collating elements}
\entry{collating symbols}{36}{collating symbols}
\entry{equivalence classes}{37}{equivalence classes}
\entry{regexp operators, GNU specific}{37}{regexp operators, GNU specific}
\entry{word, regexp definition of}{37}{word, regexp definition of}
\entry{{\tt\indexbackslash }w regexp operator}{37}{\code {{\tt\rawbackslashxx }w} regexp operator}
\entry{{\tt\indexbackslash }W regexp operator}{37}{\code {{\tt\rawbackslashxx }W} regexp operator}
\entry{{\tt\indexbackslash }{\tt\less} regexp operator}{37}{\code {{\tt\rawbackslashxx }<} regexp operator}
\entry{{\tt\indexbackslash }{\tt\gtr} regexp operator}{37}{\code {{\tt\rawbackslashxx }>} regexp operator}
\entry{{\tt\indexbackslash }y regexp operator}{37}{\code {{\tt\rawbackslashxx }y} regexp operator}
\entry{word boundaries, matching}{37}{word boundaries, matching}
\entry{{\tt\indexbackslash }B regexp operator}{37}{\code {{\tt\rawbackslashxx }B} regexp operator}
\entry{buffer matching operators}{37}{buffer matching operators}
\entry{{\tt\indexbackslash }` regexp operator}{38}{\code {{\tt\rawbackslashxx }`} regexp operator}
\entry{{\tt\indexbackslash }' regexp operator}{38}{\code {{\tt\rawbackslashxx }'} regexp operator}
\entry{regexp, effect of command-line options}{38}{regexp, effect of command-line options}
\entry{case sensitivity}{38}{case sensitivity}
\entry{ignoring case}{38}{ignoring case}
\entry{differences between gawk and awk}{39}{differences between \command {gawk} and \command {awk}}
\entry{{\tt\char 126} operator}{39}{\code {~} operator}
\entry{!{\tt\char 126} operator}{39}{\code {!~} operator}
\entry{IGNORECASE variable}{39}{\code {IGNORECASE} variable}
\entry{ISO 8859-1}{39}{ISO 8859-1}
\entry{ISO Latin-1}{39}{ISO Latin-1}
\entry{leftmost longest match}{40}{leftmost longest match}
\entry{matching, leftmost longest}{40}{matching, leftmost longest}
\entry{computed regular expressions}{40}{computed regular expressions}
\entry{regular expressions, computed}{40}{regular expressions, computed}
\entry{dynamic regular expressions}{40}{dynamic regular expressions}
\entry{regexp, dynamic}{40}{regexp, dynamic}
\entry{{\tt\char 126} operator}{40}{\code {~} operator}
\entry{!{\tt\char 126} operator}{40}{\code {!~} operator}
\entry{regexp constants, difference between slashes and quotes}{40}{regexp constants, difference between slashes and quotes}
\entry{common mistakes}{41}{common mistakes}
\entry{mistakes, common}{41}{mistakes, common}
\entry{errors, common}{41}{errors, common}
\entry{advanced notes}{41}{advanced notes}
\entry{dynamic regular expressions with embedded newlines}{41}{dynamic regular expressions with embedded newlines}
\entry{regexp, dynamic, with embedded newlines}{41}{regexp, dynamic, with embedded newlines}
\entry{newlines, embedded in dynamic regexps}{41}{newlines, embedded in dynamic regexps}
\entry{embedded newlines, in dynamic regexps}{41}{embedded newlines, in dynamic regexps}
\entry{reading files}{43}{reading files}
\entry{input}{43}{input}
\entry{standard input}{43}{standard input}
\entry{FILENAME variable}{43}{\code {FILENAME} variable}
\entry{number of records, NR, FNR}{43}{number of records, \code {NR}, \code {FNR}}
\entry{NR variable}{43}{\code {NR} variable}
\entry{FNR variable}{43}{\code {FNR} variable}
\entry{record separator, RS}{43}{record separator, \code {RS}}
\entry{changing the record separator}{43}{changing the record separator}
\entry{record, definition of}{43}{record, definition of}
\entry{RS variable}{43}{\code {RS} variable}
\entry{dark corner}{45}{dark corner}
\entry{empty string}{45}{empty string}
\entry{RT variable}{45}{\code {RT} variable}
\entry{record terminator, RT}{45}{record terminator, \code {RT}}
\entry{terminator, record}{45}{terminator, record}
\entry{differences between gawk and awk}{45}{differences between \command {gawk} and \command {awk}}
\entry{regular expressions as record separators}{45}{regular expressions as record separators}
\entry{differences between gawk and awk}{46}{differences between \command {gawk} and \command {awk}}
\entry{advanced notes}{46}{advanced notes}
\entry{portability issues}{46}{portability issues}
\entry{differences between gawk and awk}{46}{differences between \command {gawk} and \command {awk}}
\entry{dark corner}{46}{dark corner}
\entry{examining fields}{46}{examining fields}
\entry{fields}{46}{fields}
\entry{accessing fields}{46}{accessing fields}
\entry{$ field operator}{46}{\code {$} field operator}
\entry{field operator $}{46}{field operator \code {$}}
\entry{NF variable}{47}{\code {NF} variable}
\entry{number of fields, NF}{47}{number of fields, \code {NF}}
\entry{fields, changing contents of}{48}{fields, changing contents of}
\entry{changing contents of a field}{48}{changing contents of a field}
\entry{assignment to fields}{48}{assignment to fields}
\entry{dark corner}{50}{dark corner}
\entry{portability issues}{50}{portability issues}
\entry{FS variable}{50}{\code {FS} variable}
\entry{fields, separating}{50}{fields, separating}
\entry{field separator, FS}{50}{field separator, \code {FS}}
\entry{common mistakes}{50}{common mistakes}
\entry{mistakes, common}{50}{mistakes, common}
\entry{errors, common}{50}{errors, common}
\entry{field separator, choice of}{51}{field separator, choice of}
\entry{regular expressions as field separators}{51}{regular expressions as field separators}
\entry{null string}{52}{null string}
\entry{empty string}{52}{empty string}
\entry{differences between gawk and awk}{52}{differences between \command {gawk} and \command {awk}}
\entry{single-character fields}{52}{single-character fields}
\entry{dark corner}{53}{dark corner}
\entry{-F option}{53}{\code {-F} option}
\entry{command-line option, -F}{53}{command-line option, \code {-F}}
\entry{field separator, on command line}{53}{field separator, on command line}
\entry{command line, setting FS on}{53}{command line, setting \code {FS} on}
\entry{historical features}{53}{historical features}
\entry{Robbins, Arnold}{54}{Robbins, Arnold}
\entry{awk language, POSIX version}{55}{\command {awk} language, POSIX version}
\entry{POSIX awk}{55}{POSIX \command {awk}}
\entry{dark corner}{55}{dark corner}
\entry{sed utility}{55}{\command {sed} utility}
\entry{stream editor}{55}{stream editor}
\entry{fatal errors}{55}{fatal errors}
\entry{w utility}{55}{\command {w} utility}
\entry{multiple line records}{57}{multiple line records}
\entry{input, multiple line records}{57}{input, multiple line records}
\entry{reading files, multiple line records}{57}{reading files, multiple line records}
\entry{records, multiple line}{57}{records, multiple line}
\entry{leftmost longest match}{57}{leftmost longest match}
\entry{matching, leftmost longest}{57}{matching, leftmost longest}
\entry{dark corner}{57}{dark corner}
\entry{RT variable}{59}{\code {RT} variable}
\entry{getline built-in function}{59}{\code {getline} built-in function}
\entry{input, explicit}{59}{input, explicit}
\entry{explicit input}{59}{explicit input}
\entry{input, getline command}{59}{input, \code {getline} command}
\entry{reading files, getline command}{59}{reading files, \code {getline} command}
\entry{ERRNO variable}{60}{\code {ERRNO} variable}
\entry{differences between gawk and awk}{60}{differences between \command {gawk} and \command {awk}}
\entry{getline, return values}{60}{\code {getline}, return values}
\entry{input redirection}{61}{input redirection}
\entry{redirection of input}{61}{redirection of input}
\entry{{\tt\less} I/O operator}{61}{\code {<} I/O operator}
\entry{{\tt\char 124} I/O operator}{63}{\code {|} I/O operator}
\entry{input pipeline}{63}{input pipeline}
\entry{pipeline, input}{63}{pipeline, input}
\entry{Robbins, Bill}{63}{Robbins, Bill}
\entry{Robbins, Miriam}{63}{Robbins, Miriam}
\entry{Robbins, Arnold}{63}{Robbins, Arnold}
\entry{coprocess}{64}{coprocess}
\entry{{\tt\char 124}& I/O operator}{64}{\code {|&} I/O operator}
\entry{differences between gawk and awk}{64}{differences between \command {gawk} and \command {awk}}
\entry{differences between gawk and awk}{65}{differences between \command {gawk} and \command {awk}}
\entry{limitations}{65}{limitations}
\entry{implementation limits}{65}{implementation limits}
\entry{side effects}{65}{side effects}
\entry{FILENAME variable}{65}{\code {FILENAME} variable}
\entry{dark corner}{65}{dark corner}
\entry{getline, setting FILENAME}{65}{\code {getline}, setting \code {FILENAME}}
\entry{FILENAME, being set by getline}{65}{\code {FILENAME}, being set by \code {getline}}
\entry{printing}{67}{printing}
\entry{output}{67}{output}
\entry{print statement}{67}{\code {print} statement}
\entry{common mistakes}{68}{common mistakes}
\entry{mistakes, common}{68}{mistakes, common}
\entry{errors, common}{68}{errors, common}
\entry{line continuation}{69}{line continuation}
\entry{output field separator, OFS}{69}{output field separator, \code {OFS}}
\entry{output record separator, ORS}{69}{output record separator, \code {ORS}}
\entry{OFS variable}{69}{\code {OFS} variable}
\entry{ORS variable}{69}{\code {ORS} variable}
\entry{OFMT variable}{70}{\code {OFMT} variable}
\entry{numeric output format}{70}{numeric output format}
\entry{format, numeric output}{70}{format, numeric output}
\entry{output format specifier, OFMT}{70}{output format specifier, \code {OFMT}}
\entry{dark corner}{70}{dark corner}
\entry{awk language, POSIX version}{70}{\command {awk} language, POSIX version}
\entry{POSIX awk}{70}{POSIX \command {awk}}
\entry{formatted output}{70}{formatted output}
\entry{output, formatted}{70}{output, formatted}
\entry{printf statement}{70}{\code {printf} statement}
\entry{printf statement, syntax of}{70}{\code {printf} statement, syntax of}
\entry{format string}{70}{format string}
\entry{printf, format-control characters}{71}{\code {printf}, format-control characters}
\entry{format specifier, printf}{71}{format specifier, \code {printf}}
\entry{dark corner}{72}{dark corner}
\entry{printf, modifiers}{72}{\code {printf}, modifiers}
\entry{modifiers (in format specifiers)}{72}{modifiers (in format specifiers)}
\entry{differences between gawk and awk}{72}{differences between \command {gawk} and \command {awk}}
\entry{printf, positional specifier}{72}{\code {printf}, positional specifier}
\entry{positional specifier, printf}{72}{positional specifier, \code {printf}}
\entry{dark corner}{73}{dark corner}
\entry{fatal errors}{74}{fatal errors}
\entry{awk language, POSIX version}{74}{\command {awk} language, POSIX version}
\entry{POSIX awk}{74}{POSIX \command {awk}}
\entry{lint checks}{74}{lint checks}
\entry{output redirection}{75}{output redirection}
\entry{redirection of output}{75}{redirection of output}
\entry{{\tt\gtr} I/O operator}{76}{\code {>} I/O operator}
\entry{{\tt\gtr}{\tt\gtr} I/O operator}{76}{\code {>>} I/O operator}
\entry{{\tt\char 124} I/O operator}{76}{\code {|} I/O operator}
\entry{pipes for output}{76}{pipes for output}
\entry{output, piping}{76}{output, piping}
\entry{coprocess}{77}{coprocess}
\entry{{\tt\char 124}& I/O operator}{77}{\code {|&} I/O operator}
\entry{differences between gawk and awk}{77}{differences between \command {gawk} and \command {awk}}
\entry{common mistakes}{78}{common mistakes}
\entry{mistakes, common}{78}{mistakes, common}
\entry{errors, common}{78}{errors, common}
\entry{differences between gawk and awk}{78}{differences between \command {gawk} and \command {awk}}
\entry{limitations}{78}{limitations}
\entry{implementation limits}{78}{implementation limits}
\entry{advanced notes}{78}{advanced notes}
\entry{shell, piping commands into}{78}{shell, piping commands into}
\entry{piping commands into the shell}{78}{piping commands into the shell}
\entry{mv utility}{78}{\command {mv} utility}
\entry{standard input}{78}{standard input}
\entry{standard output}{78}{standard output}
\entry{standard error output}{78}{standard error output}
\entry{file descriptors}{78}{file descriptors}
\entry{differences between gawk and awk}{79}{differences between \command {gawk} and \command {awk}}
\entry{/dev/stdin special file}{79}{\file {/dev/stdin} special file}
\entry{/dev/stdout special file}{79}{\file {/dev/stdout} special file}
\entry{/dev/stderr special file}{79}{\file {/dev/stderr} special file}
\entry{/dev/fd special files}{79}{\file {/dev/fd} special files}
\entry{common mistakes}{79}{common mistakes}
\entry{mistakes, common}{79}{mistakes, common}
\entry{errors, common}{79}{errors, common}
\entry{process information}{80}{process information}
\entry{/dev/pid special file}{80}{\file {/dev/pid} special file}
\entry{/dev/pgrpid special file}{80}{\file {/dev/pgrpid} special file}
\entry{/dev/ppid special file}{80}{\file {/dev/ppid} special file}
\entry{/dev/user special file}{80}{\file {/dev/user} special file}
\entry{automatic warnings}{80}{automatic warnings}
\entry{warnings, automatic}{80}{warnings, automatic}
\entry{automatic warnings}{81}{automatic warnings}
\entry{warnings, automatic}{81}{warnings, automatic}
\entry{closing input files and pipes}{81}{closing input files and pipes}
\entry{closing output files and pipes}{81}{closing output files and pipes}
\entry{closing coprocesses}{81}{closing coprocesses}
\entry{coprocess}{81}{coprocess}
\entry{close built-in function}{81}{\code {close} built-in function}
\entry{differences between gawk and awk}{83}{differences between \command {gawk} and \command {awk}}
\entry{portability issues}{83}{portability issues}
\entry{advanced notes}{84}{advanced notes}
\entry{dark corner}{84}{dark corner}
\entry{differences between gawk and awk}{84}{differences between \command {gawk} and \command {awk}}
\entry{close, return value}{84}{\code {close}, return value}
\entry{return value from close}{84}{return value from \code {close}}
\entry{expression}{85}{expression}
\entry{constants, types of}{85}{constants, types of}
\entry{numeric constant}{85}{numeric constant}
\entry{numeric value}{85}{numeric value}
\entry{string constants}{85}{string constants}
\entry{differences between gawk and awk}{85}{differences between \command {gawk} and \command {awk}}
\entry{octal numbers}{85}{octal numbers}
\entry{hexadecimal numbers}{85}{hexadecimal numbers}
\entry{numbers, octal}{85}{numbers, octal}
\entry{numbers, hexadecimal}{85}{numbers, hexadecimal}
\entry{advanced notes}{87}{advanced notes}
\entry{{\tt\char 126} operator}{87}{\code {~} operator}
\entry{!{\tt\char 126} operator}{87}{\code {!~} operator}
\entry{dark corner}{87}{dark corner}
\entry{automatic warnings}{87}{automatic warnings}
\entry{warnings, automatic}{87}{warnings, automatic}
\entry{differences between gawk and awk}{88}{differences between \command {gawk} and \command {awk}}
\entry{dark corner}{88}{dark corner}
\entry{automatic warnings}{88}{automatic warnings}
\entry{warnings, automatic}{88}{warnings, automatic}
\entry{variables, user-defined}{89}{variables, user-defined}
\entry{user-defined variables}{89}{user-defined variables}
\entry{dark corner}{90}{dark corner}
\entry{conversion of strings and numbers}{90}{conversion of strings and numbers}
\entry{null string}{90}{null string}
\entry{empty string}{90}{empty string}
\entry{type conversion}{90}{type conversion}
\entry{CONVFMT variable}{90}{\code {CONVFMT} variable}
\entry{dark corner}{91}{dark corner}
\entry{awk language, POSIX version}{91}{\command {awk} language, POSIX version}
\entry{POSIX awk}{91}{POSIX \command {awk}}
\entry{OFMT variable}{91}{\code {OFMT} variable}
\entry{arithmetic operators}{91}{arithmetic operators}
\entry{operators, arithmetic}{91}{operators, arithmetic}
\entry{addition}{91}{addition}
\entry{subtraction}{91}{subtraction}
\entry{multiplication}{91}{multiplication}
\entry{division}{91}{division}
\entry{remainder}{91}{remainder}
\entry{quotient}{91}{quotient}
\entry{exponentiation}{91}{exponentiation}
\entry{awk language, POSIX version}{92}{\command {awk} language, POSIX version}
\entry{POSIX awk}{92}{POSIX \command {awk}}
\entry{common mistakes}{92}{common mistakes}
\entry{mistakes, common}{92}{mistakes, common}
\entry{errors, common}{92}{errors, common}
\entry{differences between gawk and awk}{92}{differences between \command {gawk} and \command {awk}}
\entry{portability issues}{92}{portability issues}
\entry{Kernighan, Brian}{92}{Kernighan, Brian}
\entry{string operators}{92}{string operators}
\entry{operators, string}{92}{operators, string}
\entry{concatenation}{92}{concatenation}
\entry{common mistakes}{93}{common mistakes}
\entry{mistakes, common}{93}{mistakes, common}
\entry{errors, common}{93}{errors, common}
\entry{order of evaluation, concatenation}{93}{order of evaluation, concatenation}
\entry{concatenation evaluation order}{93}{concatenation evaluation order}
\entry{evaluation, order of}{93}{evaluation, order of}
\entry{side effects}{93}{side effects}
\entry{assignment operators}{94}{assignment operators}
\entry{operators, assignment}{94}{operators, assignment}
\entry{expression, assignment}{94}{expression, assignment}
\entry{= operator}{94}{\code {=} operator}
\entry{side effects}{94}{side effects}
\entry{lvalue}{94}{lvalue}
\entry{rvalue}{94}{rvalue}
\entry{types of variables}{94}{types of variables}
\entry{Rankin, Pat}{95}{Rankin, Pat}
\entry{{\tt\char 43}= operator}{96}{\code {+=} operator}
\entry{-= operator}{96}{\code {-=} operator}
\entry{*= operator}{96}{\code {*=} operator}
\entry{/= operator}{96}{\code {/=} operator}
\entry{%= operator}{96}{\code {%=} operator}
\entry{{\tt\hat}= operator}{96}{\code {^=} operator}
\entry{**= operator}{96}{\code {**=} operator}
\entry{awk language, POSIX version}{96}{\command {awk} language, POSIX version}
\entry{POSIX awk}{96}{POSIX \command {awk}}
\entry{portability issues}{96}{portability issues}
\entry{advanced notes}{96}{advanced notes}
\entry{dark corner}{96}{dark corner}
\entry{ambiguity, syntactic: /= operator vs. /=...{}/ regexp constant}{96}{ambiguity, syntactic: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}
\entry{syntactic ambiguity: /= operator vs. /=...{}/ regexp constant}{96}{syntactic ambiguity: \code {/=} operator vs. \code {/=\dots {}/} regexp constant}
\entry{/= operator vs. /=...{}/ regexp constant}{96}{\code {/=} operator vs. \code {/=\dots {}/} regexp constant}
\entry{increment operators}{97}{increment operators}
\entry{operators, increment}{97}{operators, increment}
\entry{side effects}{97}{side effects}
\entry{decrement operators}{97}{decrement operators}
\entry{operators, decrement}{97}{operators, decrement}
\entry{{\tt\char 43}{\tt\char 43} operator}{97}{\code {++} operator}
\entry{-- operator}{97}{\code {--} operator}
\entry{advanced notes}{98}{advanced notes}
\entry{precedence}{98}{precedence}
\entry{operator precedence}{98}{operator precedence}
\entry{portability issues}{98}{portability issues}
\entry{evaluation, order of}{98}{evaluation, order of}
\entry{Marx, Groucho}{98}{Marx, Groucho}
\entry{side effects}{98}{side effects}
\entry{truth values}{98}{truth values}
\entry{logical true}{98}{logical true}
\entry{logical false}{98}{logical false}
\entry{null string}{98}{null string}
\entry{empty string}{98}{empty string}
\entry{dark corner}{98}{dark corner}
\entry{comparison expressions}{99}{comparison expressions}
\entry{expression, comparison}{99}{expression, comparison}
\entry{expression, matching}{99}{expression, matching}
\entry{relational operators}{99}{relational operators}
\entry{operators, relational}{99}{operators, relational}
\entry{regexp operators}{99}{regexp operators}
\entry{variable typing}{99}{variable typing}
\entry{types of variables}{99}{types of variables}
\entry{numeric string}{99}{numeric string}
\entry{relational operators}{100}{relational operators}
\entry{operators, relational}{100}{operators, relational}
\entry{{\tt\less} operator}{100}{\code {<} operator}
\entry{{\tt\less}= operator}{100}{\code {<=} operator}
\entry{{\tt\gtr} operator}{100}{\code {>} operator}
\entry{{\tt\gtr}= operator}{100}{\code {>=} operator}
\entry{== operator}{100}{\code {==} operator}
\entry{!= operator}{100}{\code {!=} operator}
\entry{{\tt\char 126} operator}{100}{\code {~} operator}
\entry{!{\tt\char 126} operator}{100}{\code {!~} operator}
\entry{in operator}{100}{\code {in} operator}
\entry{common mistakes}{100}{common mistakes}
\entry{mistakes, common}{100}{mistakes, common}
\entry{errors, common}{100}{errors, common}
\entry{comparisons, string vs. regexp}{101}{comparisons, string vs. regexp}
\entry{string comparison vs. regexp comparison}{101}{string comparison vs. regexp comparison}
\entry{regexp comparison vs. string comparison}{101}{regexp comparison vs. string comparison}
\entry{regexp as expression}{101}{regexp as expression}
\entry{expression, boolean}{102}{expression, boolean}
\entry{boolean expressions}{102}{boolean expressions}
\entry{operators, boolean}{102}{operators, boolean}
\entry{boolean operators}{102}{boolean operators}
\entry{logical operators}{102}{logical operators}
\entry{operators, logical}{102}{operators, logical}
\entry{short-circuit operators}{102}{short-circuit operators}
\entry{operators, short-circuit}{102}{operators, short-circuit}
\entry{AND logical operator}{102}{AND logical operator}
\entry{OR logical operator}{102}{OR logical operator}
\entry{NOT logical operator}{102}{NOT logical operator}
\entry{&& operator}{102}{\code {&&} operator}
\entry{{\tt\char 124}{\tt\char 124} operator}{102}{\code {||} operator}
\entry{! operator}{102}{\code {!} operator}
\entry{side effects}{102}{side effects}
\entry{line continuation}{103}{line continuation}
\entry{flag variables}{103}{flag variables}
\entry{conditional expression}{103}{conditional expression}
\entry{expression, conditional}{103}{expression, conditional}
\entry{side effects}{103}{side effects}
\entry{differences between gawk and awk}{104}{differences between \command {gawk} and \command {awk}}
\entry{line continuation}{104}{line continuation}
\entry{function call}{104}{function call}
\entry{calling a function}{104}{calling a function}
\entry{arguments in function call}{104}{arguments in function call}
\entry{side effects}{105}{side effects}
\entry{precedence}{105}{precedence}
\entry{operator precedence}{105}{operator precedence}
\entry{$ field operator}{106}{\code {$} field operator}
\entry{{\tt\char 43} operator}{106}{\code {+} operator}
\entry{- operator}{106}{\code {-} operator}
\entry{! operator}{106}{\code {!} operator}
\entry{* operator}{106}{\code {*} operator}
\entry{/ operator}{106}{\code {/} operator}
\entry{% operator}{106}{\code {%} operator}
\entry{{\tt\hat} operator}{106}{\code {^} operator}
\entry{** operator}{106}{\code {**} operator}
\entry{{\tt\char 43}{\tt\char 43} operator}{106}{\code {++} operator}
\entry{-- operator}{106}{\code {--} operator}
\entry{{\tt\less} operator}{106}{\code {<} operator}
\entry{{\tt\less}= operator}{106}{\code {<=} operator}
\entry{== operator}{106}{\code {==} operator}
\entry{!= operator}{106}{\code {!=} operator}
\entry{{\tt\gtr} operator}{106}{\code {>} operator}
\entry{{\tt\gtr}= operator}{106}{\code {>=} operator}
\entry{{\tt\gtr}{\tt\gtr} I/O operator}{106}{\code {>>} I/O operator}
\entry{{\tt\char 124} I/O operator}{106}{\code {|} I/O operator}
\entry{{\tt\char 124}& I/O operator}{106}{\code {|&} I/O operator}
\entry{{\tt\char 126} operator}{106}{\code {~} operator}
\entry{!{\tt\char 126} operator}{106}{\code {!~} operator}
\entry{in operator}{106}{\code {in} operator}
\entry{&& operator}{106}{\code {&&} operator}
\entry{{\tt\char 124}{\tt\char 124} operator}{106}{\code {||} operator}
\entry{?: operator}{106}{\code {?:} operator}
\entry{{\tt\char 43}= operator}{106}{\code {+=} operator}
\entry{-= operator}{106}{\code {-=} operator}
\entry{*= operator}{106}{\code {*=} operator}
\entry{/= operator}{106}{\code {/=} operator}
\entry{%= operator}{106}{\code {%=} operator}
\entry{{\tt\hat}= operator}{106}{\code {^=} operator}
\entry{**= operator}{106}{\code {**=} operator}
\entry{portability issues}{106}{portability issues}
\entry{awk language, POSIX version}{106}{\command {awk} language, POSIX version}
\entry{POSIX awk}{106}{POSIX \command {awk}}
\entry{pattern, definition of}{107}{pattern, definition of}
\entry{patterns, types of}{107}{patterns, types of}
\entry{range pattern}{109}{range pattern}
\entry{pattern, range}{109}{pattern, range}
\entry{matching ranges of lines}{109}{matching ranges of lines}
\entry{skipping lines between markers}{110}{skipping lines between markers}
\entry{flag variables}{110}{flag variables}
\entry{! operator}{110}{\code {!} operator}
\entry{BEGIN special pattern}{110}{\code {BEGIN} special pattern}
\entry{pattern, BEGIN}{110}{pattern, \code {BEGIN}}
\entry{END special pattern}{110}{\code {END} special pattern}
\entry{pattern, END}{110}{pattern, \code {END}}
\entry{blocks, BEGIN and END}{110}{blocks, \code {BEGIN} and \code {END}}
\entry{I/O, from BEGIN and END}{111}{I/O, from \code {BEGIN} and \code {END}}
\entry{differences between gawk and awk}{111}{differences between \command {gawk} and \command {awk}}
\entry{empty pattern}{112}{empty pattern}
\entry{pattern, empty}{112}{pattern, empty}
\entry{shell varibles, using in awk programs}{112}{shell varibles, using in \command {awk} programs}
\entry{using shell variables in awk programs}{112}{using shell variables in \command {awk} programs}
\entry{shell and awk interaction}{112}{shell and \command {awk} interaction}
\entry{action, definition of}{113}{action, definition of}
\entry{curly braces}{113}{curly braces}
\entry{action, curly braces}{113}{action, curly braces}
\entry{action, separating statements}{113}{action, separating statements}
\entry{side effects}{114}{side effects}
\entry{control statement}{114}{control statement}
\entry{compound statement}{114}{compound statement}
\entry{statement, compound}{114}{statement, compound}
\entry{if-else statement}{114}{\code {if}-\code {else} statement}
\entry{while statement}{115}{\code {while} statement}
\entry{loop}{115}{loop}
\entry{body of a loop}{115}{body of a loop}
\entry{do-while statement}{116}{\code {do}-\code {while} statement}
\entry{for statement}{116}{\code {for} statement}
\entry{comma operator, not supported}{117}{comma operator, not supported}
\entry{break statement}{118}{\code {break} statement}
\entry{loops, exiting}{118}{loops, exiting}
\entry{break, outside of loops}{118}{\code {break}, outside of loops}
\entry{historical features}{118}{historical features}
\entry{awk language, POSIX version}{118}{\command {awk} language, POSIX version}
\entry{POSIX awk}{118}{POSIX \command {awk}}
\entry{dark corner}{118}{dark corner}
\entry{continue statement}{119}{\code {continue} statement}
\entry{continue, outside of loops}{119}{\code {continue}, outside of loops}
\entry{historical features}{119}{historical features}
\entry{awk language, POSIX version}{119}{\command {awk} language, POSIX version}
\entry{POSIX awk}{119}{POSIX \command {awk}}
\entry{dark corner}{119}{dark corner}
\entry{next statement}{120}{\code {next} statement}
\entry{awk language, POSIX version}{120}{\command {awk} language, POSIX version}
\entry{POSIX awk}{120}{POSIX \command {awk}}
\entry{next, inside a user-defined function}{120}{\code {next}, inside a user-defined function}
\entry{nextfile statement}{121}{\code {nextfile} statement}
\entry{differences between gawk and awk}{121}{differences between \command {gawk} and \command {awk}}
\entry{nextfile, inside a user-defined function}{121}{\code {nextfile}, inside a user-defined function}
\entry{next file statement}{121}{\code {next file} statement}
\entry{exit statement}{121}{\code {exit} statement}
\entry{dark corner}{122}{dark corner}
\entry{conventions, programming}{122}{conventions, programming}
\entry{programming conventions}{122}{programming conventions}
\entry{built-in variables}{122}{built-in variables}
\entry{built-in variables, user modifiable}{123}{built-in variables, user modifiable}
\entry{BINMODE variable}{123}{\code {BINMODE} variable}
\entry{binary I/O}{123}{binary I/O}
\entry{I/O, binary}{123}{I/O, binary}
\entry{differences between gawk and awk}{123}{differences between \command {gawk} and \command {awk}}
\entry{CONVFMT variable}{123}{\code {CONVFMT} variable}
\entry{awk language, POSIX version}{123}{\command {awk} language, POSIX version}
\entry{POSIX awk}{123}{POSIX \command {awk}}
\entry{FIELDWIDTHS variable}{123}{\code {FIELDWIDTHS} variable}
\entry{FS variable}{123}{\code {FS} variable}
\entry{IGNORECASE variable}{124}{\code {IGNORECASE} variable}
\entry{LINT variable}{124}{\code {LINT} variable}
\entry{differences between gawk and awk}{124}{differences between \command {gawk} and \command {awk}}
\entry{lint checks}{124}{lint checks}
\entry{OFMT variable}{124}{\code {OFMT} variable}
\entry{OFS variable}{125}{\code {OFS} variable}
\entry{ORS variable}{125}{\code {ORS} variable}
\entry{RS variable}{125}{\code {RS} variable}
\entry{SUBSEP variable}{125}{\code {SUBSEP} variable}
\entry{TEXTDOMAIN variable}{125}{\code {TEXTDOMAIN} variable}
\entry{internationalization}{125}{internationalization}
\entry{built-in variables, convey information}{125}{built-in variables, convey information}
\entry{ARGC variable}{126}{\code {ARGC} variable}
\entry{ARGV variable}{126}{\code {ARGV} variable}
\entry{conventions, programming}{126}{conventions, programming}
\entry{programming conventions}{126}{programming conventions}
\entry{ARGIND variable}{126}{\code {ARGIND} variable}
\entry{ENVIRON variable}{126}{\code {ENVIRON} variable}
\entry{ERRNO variable}{127}{\code {ERRNO} variable}
\entry{dark corner}{127}{dark corner}
\entry{FILENAME variable}{127}{\code {FILENAME} variable}
\entry{FNR variable}{127}{\code {FNR} variable}
\entry{NF variable}{127}{\code {NF} variable}
\entry{NR variable}{127}{\code {NR} variable}
\entry{PROCINFO variable}{127}{\code {PROCINFO} variable}
\entry{RLENGTH variable}{128}{\code {RLENGTH} variable}
\entry{RSTART variable}{128}{\code {RSTART} variable}
\entry{RT variable}{128}{\code {RT} variable}
\entry{advanced notes}{128}{advanced notes}
\entry{dark corner}{128}{dark corner}
\entry{differences between gawk and awk}{130}{differences between \command {gawk} and \command {awk}}
\entry{names, use of}{133}{names, use of}
\entry{namespace issues in awk}{133}{namespace issues in \command {awk}}
\entry{arrays}{133}{arrays}
\entry{arrays, definition of}{134}{arrays, definition of}
\entry{associative arrays}{134}{associative arrays}
\entry{arrays, associative}{134}{arrays, associative}
\entry{sparse arrays}{134}{sparse arrays}
\entry{arrays, sparse}{134}{arrays, sparse}
\entry{arrays, subscripts, and IGNORECASE}{134}{arrays, subscripts, and \code {IGNORECASE}}
\entry{IGNORECASE, and array subscripts}{134}{\code {IGNORECASE}, and array subscripts}
\entry{IGNORECASE variable}{134}{\code {IGNORECASE} variable}
\entry{array reference}{135}{array reference}
\entry{element of array}{135}{element of array}
\entry{reference to array}{135}{reference to array}
\entry{arrays, presence of elements}{135}{arrays, presence of elements}
\entry{arrays, the in operator}{135}{arrays, the \code {in} operator}
\entry{side effects}{135}{side effects}
\entry{array assignment}{135}{array assignment}
\entry{element assignment}{135}{element assignment}
\entry{for (x in ...{}) statement}{137}{\code {for (x in \dots {})} statement}
\entry{arrays, special for statement}{137}{arrays, special \code {for} statement}
\entry{scanning an array}{137}{scanning an array}
\entry{in operator}{137}{\code {in} operator}
\entry{delete statement}{138}{\code {delete} statement}
\entry{deleting elements of arrays}{138}{deleting elements of arrays}
\entry{removing elements of arrays}{138}{removing elements of arrays}
\entry{arrays, deleting an element}{138}{arrays, deleting an element}
\entry{lint checks}{138}{lint checks}
\entry{arrays, deleting entire contents}{138}{arrays, deleting entire contents}
\entry{deleting entire arrays}{138}{deleting entire arrays}
\entry{differences between gawk and awk}{138}{differences between \command {gawk} and \command {awk}}
\entry{portability issues}{138}{portability issues}
\entry{Brennan, Michael}{138}{Brennan, Michael}
\entry{conversions, during subscripting}{139}{conversions, during subscripting}
\entry{numbers, used as subscripts}{139}{numbers, used as subscripts}
\entry{CONVFMT variable}{139}{\code {CONVFMT} variable}
\entry{uninitialized variables, as array subscripts}{140}{uninitialized variables, as array subscripts}
\entry{arrays, subscripts, uninitialized variables}{140}{arrays, subscripts, uninitialized variables}
\entry{null string, as array subscript}{140}{null string, as array subscript}
\entry{dark corner}{140}{dark corner}
\entry{lint checks}{140}{lint checks}
\entry{subscripts in arrays}{140}{subscripts in arrays}
\entry{arrays, multidimensional subscripts}{140}{arrays, multidimensional subscripts}
\entry{multidimensional subscripts}{140}{multidimensional subscripts}
\entry{SUBSEP variable}{140}{\code {SUBSEP} variable}
\entry{arrays, sorting}{143}{arrays, sorting}
\entry{asort built-in function}{143}{\code {asort} built-in function}
\entry{side effects}{143}{side effects}
\entry{reference counting}{143}{reference counting}
\entry{arrays, sorting and IGNORECASE}{144}{arrays, sorting and \code {IGNORECASE}}
\entry{IGNORECASE, and array sorting}{144}{\code {IGNORECASE}, and array sorting}
\entry{IGNORECASE variable}{144}{\code {IGNORECASE} variable}
\entry{built-in functions}{145}{built-in functions}
\entry{conventions, programming}{145}{conventions, programming}
\entry{programming conventions}{145}{programming conventions}
\entry{fatal errors}{145}{fatal errors}
\entry{differences between gawk and awk}{145}{differences between \command {gawk} and \command {awk}}
\entry{evaluation, order of}{145}{evaluation, order of}
\entry{order of evaluation}{145}{order of evaluation}
\entry{int built-in function}{146}{\code {int} built-in function}
\entry{sqrt built-in function}{146}{\code {sqrt} built-in function}
\entry{exp built-in function}{146}{\code {exp} built-in function}
\entry{log built-in function}{146}{\code {log} built-in function}
\entry{sin built-in function}{146}{\code {sin} built-in function}
\entry{cos built-in function}{146}{\code {cos} built-in function}
\entry{atan2 built-in function}{146}{\code {atan2} built-in function}
\entry{rand built-in function}{146}{\code {rand} built-in function}
\entry{seed for random numbers}{147}{seed for random numbers}
\entry{random numbers, seed of}{147}{random numbers, seed of}
\entry{srand built-in function}{147}{\code {srand} built-in function}
\entry{asort built-in function}{148}{\code {asort} built-in function}
\entry{differences between gawk and awk}{148}{differences between \command {gawk} and \command {awk}}
\entry{index built-in function}{148}{\code {index} built-in function}
\entry{length built-in function}{148}{\code {length} built-in function}
\entry{historical features}{149}{historical features}
\entry{portability issues}{149}{portability issues}
\entry{awk language, POSIX version}{149}{\command {awk} language, POSIX version}
\entry{POSIX awk}{149}{POSIX \command {awk}}
\entry{match built-in function}{149}{\code {match} built-in function}
\entry{RSTART variable}{149}{\code {RSTART} variable}
\entry{RLENGTH variable}{149}{\code {RLENGTH} variable}
\entry{differences between gawk and awk}{150}{differences between \command {gawk} and \command {awk}}
\entry{fatal errors}{150}{fatal errors}
\entry{split built-in function}{150}{\code {split} built-in function}
\entry{differences between gawk and awk}{150}{differences between \command {gawk} and \command {awk}}
\entry{dark corner}{150}{dark corner}
\entry{sprintf built-in function}{151}{\code {sprintf} built-in function}
\entry{strtonum built-in function}{151}{\code {strtonum} built-in function}
\entry{differences between gawk and awk}{151}{differences between \command {gawk} and \command {awk}}
\entry{sub built-in function}{151}{\code {sub} built-in function}
\entry{sub, third argument of}{152}{\code {sub}, third argument of}
\entry{gsub, third argument of}{152}{\code {gsub}, third argument of}
\entry{fatal errors}{152}{fatal errors}
\entry{gsub built-in function}{152}{\code {gsub} built-in function}
\entry{gensub built-in function}{153}{\code {gensub} built-in function}
\entry{automatic warnings}{153}{automatic warnings}
\entry{warnings, automatic}{153}{warnings, automatic}
\entry{differences between gawk and awk}{154}{differences between \command {gawk} and \command {awk}}
\entry{substr built-in function}{154}{\code {substr} built-in function}
\entry{common mistakes}{154}{common mistakes}
\entry{mistakes, common}{154}{mistakes, common}
\entry{errors, common}{154}{errors, common}
\entry{portability issues}{154}{portability issues}
\entry{case conversion}{154}{case conversion}
\entry{conversion of case}{154}{conversion of case}
\entry{tolower built-in function}{154}{\code {tolower} built-in function}
\entry{toupper built-in function}{154}{\code {toupper} built-in function}
\entry{escape processing, sub et. al.}{155}{escape processing, \code {sub} et. al.}
\entry{sub, escape processing}{155}{\code {sub}, escape processing}
\entry{gsub, escape processing}{155}{\code {gsub}, escape processing}
\entry{gensub, escape processing}{155}{\code {gensub}, escape processing}
\entry{awk language, POSIX version}{155}{\command {awk} language, POSIX version}
\entry{POSIX awk}{155}{POSIX \command {awk}}
\entry{advanced notes}{157}{advanced notes}
\entry{matching, the null string}{157}{matching, the null string}
\entry{close built-in function}{157}{\code {close} built-in function}
\entry{fflush built-in function}{158}{\code {fflush} built-in function}
\entry{portability issues}{158}{portability issues}
\entry{flushing buffers}{158}{flushing buffers}
\entry{buffers, flushing}{158}{buffers, flushing}
\entry{buffering output}{158}{buffering output}
\entry{output, buffering}{158}{output, buffering}
\entry{automatic warnings}{158}{automatic warnings}
\entry{warnings, automatic}{158}{warnings, automatic}
\entry{system built-in function}{158}{\code {system} built-in function}
\entry{interaction, awk and other programs}{158}{interaction, \command {awk} and other programs}
\entry{fatal errors}{159}{fatal errors}
\entry{advanced notes}{159}{advanced notes}
\entry{buffering, interactive vs. non-interactive}{159}{buffering, interactive vs. non-interactive}
\entry{buffering, non-interactive vs. interactive}{159}{buffering, non-interactive vs. interactive}
\entry{interactive buffering vs. non-interactive}{159}{interactive buffering vs. non-interactive}
\entry{non-interactive buffering vs. interactive}{159}{non-interactive buffering vs. interactive}
\entry{advanced notes}{160}{advanced notes}
\entry{flushing buffers}{160}{flushing buffers}
\entry{buffers, flushing}{160}{buffers, flushing}
\entry{buffering output}{160}{buffering output}
\entry{output, buffering}{160}{output, buffering}
\entry{timestamps}{160}{timestamps}
\entry{time of day}{160}{time of day}
\entry{systime built-in function}{161}{\code {systime} built-in function}
\entry{mktime built-in function}{161}{\code {mktime} built-in function}
\entry{strftime built-in function}{161}{\code {strftime} built-in function}
\entry{converting dates to timestamps}{162}{converting dates to timestamps}
\entry{dates, converting to timestamps}{162}{dates, converting to timestamps}
\entry{timestamps, converting from dates}{162}{timestamps, converting from dates}
\entry{format specifier, strftime}{162}{format specifier, \code {strftime}}
\entry{ISO 8601}{163}{ISO 8601}
\entry{RFC 822}{164}{RFC 822}
\entry{RFC 1036}{164}{RFC 1036}
\entry{locale, definition of}{164}{locale, definition of}
\entry{bitwise operations}{166}{bitwise operations}
\entry{AND bitwise operation}{166}{AND bitwise operation}
\entry{OR bitwise operation}{166}{OR bitwise operation}
\entry{XOR bitwise operation}{166}{XOR bitwise operation}
\entry{bitwise complement}{166}{bitwise complement}
\entry{complement, bitwise}{166}{complement, bitwise}
\entry{bitwise shift}{166}{bitwise shift}
\entry{left shift, bitwise}{166}{left shift, bitwise}
\entry{right shift, bitwise}{166}{right shift, bitwise}
\entry{shift, bitwise}{166}{shift, bitwise}
\entry{and built-in function}{166}{\code {and} built-in function}
\entry{or built-in function}{166}{\code {or} built-in function}
\entry{xor built-in function}{166}{\code {xor} built-in function}
\entry{compl built-in function}{166}{\code {compl} built-in function}
\entry{lshift built-in function}{166}{\code {lshift} built-in function}
\entry{rshift built-in function}{166}{\code {rshift} built-in function}
\entry{bits2str user-defined function}{167}{\code {bits2str} user-defined function}
\entry{testbits.awk program}{167}{\code {testbits.awk} program}
\entry{dcgettext built-in function}{168}{\code {dcgettext} built-in function}
\entry{bindtextdomain built-in function}{168}{\code {bindtextdomain} built-in function}
\entry{user-defined functions}{168}{user-defined functions}
\entry{function, user-defined}{168}{function, user-defined}
\entry{defining functions}{168}{defining functions}
\entry{function definition}{168}{function definition}
\entry{names, use of}{169}{names, use of}
\entry{namespace issues in awk}{169}{namespace issues in \command {awk}}
\entry{conventions, programming}{169}{conventions, programming}
\entry{programming conventions}{169}{programming conventions}
\entry{variable shadowing}{169}{variable shadowing}
\entry{recursive function}{170}{recursive function}
\entry{function, recursive}{170}{function, recursive}
\entry{awk language, POSIX version}{170}{\command {awk} language, POSIX version}
\entry{POSIX awk}{170}{POSIX \command {awk}}
\entry{portability issues}{170}{portability issues}
\entry{calling a function}{172}{calling a function}
\entry{function call}{172}{function call}
\entry{call by value}{172}{call by value}
\entry{call by reference}{172}{call by reference}
\entry{undefined functions}{173}{undefined functions}
\entry{functions, undefined}{173}{functions, undefined}
\entry{lint checks}{173}{lint checks}
\entry{portability issues}{173}{portability issues}
\entry{return statement}{173}{\code {return} statement}
\entry{conventions, programming}{174}{conventions, programming}
\entry{programming conventions}{174}{programming conventions}
\entry{internationalization features in gawk}{177}{internationalization features in \command {gawk}}
\entry{internationalization}{177}{internationalization}
\entry{localization}{177}{localization}
\entry{gettext, how it works}{177}{\code {gettext}, how it works}
\entry{internationalizing a program}{177}{internationalizing a program}
\entry{textdomain C library function}{178}{\code {textdomain} C library function}
\entry{portable object files (gettext)}{178}{portable object files (\code {gettext})}
\entry{message object files (gettext)}{178}{message object files (\code {gettext})}
\entry{bindtextdomain C library function}{178}{\code {bindtextdomain} C library function}
\entry{gettext C library function}{178}{\code {gettext} C library function}
\entry{{\_} C macro (gettext)}{178}{\code {_} C macro (\code {gettext})}
\entry{locale categories}{178}{locale categories}
\entry{LC{\_}MESSAGES locale category}{179}{\code {LC_MESSAGES} locale category}
\entry{LC{\_}COLLATE locale category}{179}{\code {LC_COLLATE} locale category}
\entry{LC{\_}CTYPE locale category}{179}{\code {LC_CTYPE} locale category}
\entry{LC{\_}MONETARY locale category}{179}{\code {LC_MONETARY} locale category}
\entry{LC{\_}NUMERIC locale category}{179}{\code {LC_NUMERIC} locale category}
\entry{LC{\_}RESPONSE locale category}{179}{\code {LC_RESPONSE} locale category}
\entry{LC{\_}TIME locale category}{179}{\code {LC_TIME} locale category}
\entry{LC{\_}ALL locale category}{179}{\code {LC_ALL} locale category}
\entry{TEXTDOMAIN variable}{179}{\code {TEXTDOMAIN} variable}
\entry{internationalization, marked strings}{179}{internationalization, marked strings}
\entry{marked strings for internationalization}{179}{marked strings for internationalization}
\entry{dcgettext built-in function}{179}{\code {dcgettext} built-in function}
\entry{bindtextdomain built-in function}{180}{\code {bindtextdomain} built-in function}
\entry{string extraction (internationalization)}{181}{string extraction (internationalization)}
\entry{marked string extraction (internationalization)}{181}{marked string extraction (internationalization)}
\entry{extraction, of marked strings (internationalization)}{181}{extraction, of marked strings (internationalization)}
\entry{--gen-po option}{181}{\code {--gen-po} option}
\entry{command-line option, --gen-po}{181}{command-line option, \code {--gen-po}}
\entry{xgettext utility}{181}{\code {xgettext} utility}
\entry{printf, positional specifier}{182}{\code {printf}, positional specifier}
\entry{positional specifier, printf}{182}{positional specifier, \code {printf}}
\entry{printf, mixing positional specifiers with regular formats}{182}{\code {printf}, mixing positional specifiers with regular formats}
\entry{positional specifiers, mixing with regular formats (printf)}{182}{positional specifiers, mixing with regular formats (\code {printf})}
\entry{format specifiers, mixing regular with positional specifiers (printf)}{182}{format specifiers, mixing regular with positional specifiers (\code {printf})}
\entry{portability issues}{183}{portability issues}
\entry{portability issues, internationalization of awk programs}{183}{portability issues, internationalization of \command {awk} programs}
\entry{internationalization of awk programs, portability issues}{183}{internationalization of \command {awk} programs, portability issues}
\entry{bindtextdomain user-defined function}{183}{\code {bindtextdomain} user-defined function}
\entry{dcgettext user-defined function}{183}{\code {dcgettext} user-defined function}
\entry{Linux}{185}{Linux}
\entry{GNU/Linux}{185}{GNU/Linux}
\entry{msgfmt utility}{185}{\command {msgfmt} utility}
\entry{--with-included-gettext configuration option}{185}{\code {--with-included-gettext} configuration option}
\entry{configuration option, --with-included-gettext}{185}{configuration option, \code {--with-included-gettext}}
\entry{advanced features}{187}{advanced features}
\entry{features, advanced}{187}{features, advanced}
\entry{--non-decimal-data option}{187}{\code {--non-decimal-data} option}
\entry{command-line option, --non-decimal-data}{187}{command-line option, \code {--non-decimal-data}}
\entry{conventions, programming}{187}{conventions, programming}
\entry{programming conventions}{187}{programming conventions}
\entry{Brennan, Michael}{188}{Brennan, Michael}
\entry{sex, programmer attractiveness}{188}{sex, programmer attractiveness}
\entry{coprocess}{188}{coprocess}
\entry{two-way I/O}{188}{two-way I/O}
\entry{I/O, two-way}{188}{I/O, two-way}
\entry{{\tt\char 124}& I/O operator}{188}{\code {|&} I/O operator}
\entry{csh utility}{188}{\command {csh} utility}
\entry{deadlock}{189}{deadlock}
\entry{networking, TCP/IP}{190}{networking, TCP/IP}
\entry{TCP/IP networking}{190}{TCP/IP networking}
\entry{/inet special files}{190}{\file {/inet} special files}
\entry{EMISTERED}{190}{\code {EMISTERED}}
\entry{getservbyname C library function}{190}{\code {getservbyname} C library function}
\entry{portal files}{191}{portal files}
\entry{BSD portal files}{191}{BSD portal files}
\entry{TCP/IP networking}{191}{TCP/IP networking}
\entry{/p special files}{191}{\file {/p} special files}
\entry{--enable-portals configuration option}{191}{\code {--enable-portals} configuration option}
\entry{configuration option, --enable-portals}{191}{configuration option, \code {--enable-portals}}
\entry{BSD-based operating systems}{191}{BSD-based operating systems}
\entry{profiling awk programs}{191}{profiling \command {awk} programs}
\entry{pgawk program}{191}{\command {pgawk} program}
\entry{awkprof.out profiling output file}{191}{\file {awkprof.out} profiling output file}
\entry{profiling output file (awkprof.out)}{191}{profiling output file (\file {awkprof.out})}
\entry{blocks, BEGIN and END}{192}{blocks, \code {BEGIN} and \code {END}}
\entry{dynamic profiling}{194}{dynamic profiling}
\entry{profiling, dynamic}{194}{profiling, dynamic}
\entry{kill command}{194}{\command {kill} command}
\entry{SIGUSR1 signal}{194}{\code {SIGUSR1} signal}
\entry{USR1 signal}{194}{\code {USR1} signal}
\entry{signals, SIGUSR1}{194}{signals, \code {SIGUSR1}}
\entry{SIGHUP signal}{195}{\code {SIGHUP} signal}
\entry{HUP signal}{195}{\code {HUP} signal}
\entry{signals, SIGHUP}{195}{signals, \code {SIGHUP}}
\entry{command line}{197}{command line}
\entry{invocation of gawk}{197}{invocation of \command {gawk}}
\entry{arguments, command-line}{197}{arguments, command-line}
\entry{options, command-line}{197}{options, command-line}
\entry{long options}{197}{long options}
\entry{options, long}{197}{options, long}
\entry{empty program}{197}{empty program}
\entry{dark corner}{197}{dark corner}
\entry{lint checks}{197}{lint checks}
\entry{-F option}{197}{\code {-F} option}
\entry{command-line option, -F}{197}{command-line option, \code {-F}}
\entry{--field-separator option}{197}{\code {--field-separator} option}
\entry{command-line option, --field-separator}{197}{command-line option, \code {--field-separator}}
\entry{-f option}{198}{\code {-f} option}
\entry{command-line option, -f}{198}{command-line option, \code {-f}}
\entry{--file option}{198}{\code {--file} option}
\entry{command-line option, --file}{198}{command-line option, \code {--file}}
\entry{-v option}{198}{\code {-v} option}
\entry{command-line option, -v}{198}{command-line option, \code {-v}}
\entry{--assign option}{198}{\code {--assign} option}
\entry{command-line option, --assign}{198}{command-line option, \code {--assign}}
\entry{-mf option}{198}{\code {-mf} option}
\entry{command-line option, -mf}{198}{command-line option, \code {-mf}}
\entry{-mr option}{198}{\code {-mr} option}
\entry{command-line option, -mr}{198}{command-line option, \code {-mr}}
\entry{-W option}{198}{\code {-W} option}
\entry{command-line option, -W}{198}{command-line option, \code {-W}}
\entry{--compat option}{199}{\code {--compat} option}
\entry{command-line option, --compat}{199}{command-line option, \code {--compat}}
\entry{--traditional option}{199}{\code {--traditional} option}
\entry{command-line option, --traditional}{199}{command-line option, \code {--traditional}}
\entry{compatibility mode}{199}{compatibility mode}
\entry{--copyright option}{199}{\code {--copyright} option}
\entry{command-line option, --copyright}{199}{command-line option, \code {--copyright}}
\entry{--copyleft option}{199}{\code {--copyleft} option}
\entry{command-line option, --copyleft}{199}{command-line option, \code {--copyleft}}
\entry{--dump-variables option}{199}{\code {--dump-variables} option}
\entry{command-line option, --dump-variables}{199}{command-line option, \code {--dump-variables}}
\entry{awkvars.out global variable list output file}{199}{\file {awkvars.out} global variable list output file}
\entry{common mistakes}{199}{common mistakes}
\entry{mistakes, common}{199}{mistakes, common}
\entry{errors, common}{199}{errors, common}
\entry{--gen-po option}{199}{\code {--gen-po} option}
\entry{command-line option, --gen-po}{199}{command-line option, \code {--gen-po}}
\entry{--help option}{199}{\code {--help} option}
\entry{command-line option, --help}{199}{command-line option, \code {--help}}
\entry{--usage option}{199}{\code {--usage} option}
\entry{command-line option, --usage}{199}{command-line option, \code {--usage}}
\entry{--lint option}{200}{\code {--lint} option}
\entry{command-line option, --lint}{200}{command-line option, \code {--lint}}
\entry{lint checks}{200}{lint checks}
\entry{fatal errors}{200}{fatal errors}
\entry{--lint-old option}{200}{\code {--lint-old} option}
\entry{command-line option, --lint-old}{200}{command-line option, \code {--lint-old}}
\entry{lint checks}{200}{lint checks}
\entry{--non-decimal-data option}{200}{\code {--non-decimal-data} option}
\entry{command-line option, --non-decimal-data}{200}{command-line option, \code {--non-decimal-data}}
\entry{--posix option}{200}{\code {--posix} option}
\entry{command-line option, --posix}{200}{command-line option, \code {--posix}}
\entry{POSIX mode}{200}{POSIX mode}
\entry{automatic warnings}{201}{automatic warnings}
\entry{warnings, automatic}{201}{warnings, automatic}
\entry{--profile option}{201}{\code {--profile} option}
\entry{command-line option, --profile}{201}{command-line option, \code {--profile}}
\entry{--re-interval option}{201}{\code {--re-interval} option}
\entry{command-line option, --re-interval}{201}{command-line option, \code {--re-interval}}
\entry{--source option}{201}{\code {--source} option}
\entry{command-line option, --source}{201}{command-line option, \code {--source}}
\entry{--version option}{201}{\code {--version} option}
\entry{command-line option, --version}{201}{command-line option, \code {--version}}
\entry{POSIXLY{\_}CORRECT environment variable}{202}{\code {POSIXLY_CORRECT} environment variable}
\entry{environment variable, POSIXLY{\_}CORRECT}{202}{environment variable, \code {POSIXLY_CORRECT}}
\entry{lint checks}{202}{lint checks}
\entry{csh utility}{202}{\command {csh} utility}
\entry{ARGIND variable}{202}{\code {ARGIND} variable}
\entry{ARGV variable}{202}{\code {ARGV} variable}
\entry{dark corner}{203}{dark corner}
\entry{multiple passes over data}{203}{multiple passes over data}
\entry{passes, multiple}{203}{passes, multiple}
\entry{AWKPATH environment variable}{203}{\env {AWKPATH} environment variable}
\entry{environment variable, AWKPATH}{203}{environment variable, \env {AWKPATH}}
\entry{search path}{203}{search path}
\entry{directory search}{203}{directory search}
\entry{path, search}{203}{path, search}
\entry{search path, for source files}{203}{search path, for source files}
\entry{differences between gawk and awk}{203}{differences between \command {gawk} and \command {awk}}
\entry{deprecated options}{204}{deprecated options}
\entry{obsolete options}{204}{obsolete options}
\entry{deprecated features}{204}{deprecated features}
\entry{obsolete features}{204}{obsolete features}
\entry{undocumented features}{205}{undocumented features}
\entry{features, undocumented}{205}{features, undocumented}
\entry{Skywalker, Luke}{205}{Skywalker, Luke}
\entry{Kenobi, Obi-Wan}{205}{Kenobi, Obi-Wan}
\entry{Jedi knights}{205}{Jedi knights}
\entry{Knights, jedi}{205}{Knights, jedi}
\entry{bugs, known in gawk}{205}{bugs, known in \command {gawk}}
\entry{known bugs}{205}{known bugs}
\entry{Texinfo}{207}{Texinfo}
\entry{portability issues}{207}{portability issues}
\entry{names, use of}{208}{names, use of}
\entry{namespace issues in awk}{208}{namespace issues in \command {awk}}
\entry{documenting awk programs}{208}{documenting \command {awk} programs}
\entry{programs, documenting}{208}{programs, documenting}
\entry{conventions, programming}{208}{conventions, programming}
\entry{programming conventions}{208}{programming conventions}
\entry{Tcl}{209}{Tcl}
\entry{skipping input files}{209}{skipping input files}
\entry{input files, skipping}{209}{input files, skipping}
\entry{conventions, programming}{209}{conventions, programming}
\entry{programming conventions}{209}{programming conventions}
\entry{nextfile user-defined function}{210}{\code {nextfile} user-defined function}
\entry{assertions}{211}{assertions}
\entry{assert C library function}{211}{\code {assert} C library function}
\entry{assert user-defined function}{211}{\code {assert} user-defined function}
\entry{rounding}{212}{rounding}
\entry{round user-defined function}{212}{\code {round} user-defined function}
\entry{random numbers, Cliff}{213}{random numbers, Cliff}
\entry{Cliff random numbers}{213}{Cliff random numbers}
\entry{cliff{\_}rand user-defined function}{213}{\code {cliff_rand} user-defined function}
\entry{numeric character values}{214}{numeric character values}
\entry{values of characters as numbers}{214}{values of characters as numbers}
\entry{ord user-defined function}{214}{\code {ord} user-defined function}
\entry{chr user-defined function}{214}{\code {chr} user-defined function}
\entry{character sets (machine character encodings)}{214}{character sets (machine character encodings)}
\entry{character encodings}{214}{character encodings}
\entry{ASCII}{214}{ASCII}
\entry{EBCDIC}{214}{EBCDIC}
\entry{mark parity}{214}{mark parity}
\entry{merging strings}{216}{merging strings}
\entry{join user-defined function}{216}{\code {join} user-defined function}
\entry{formatted timestamps}{216}{formatted timestamps}
\entry{timestamps, formatted}{216}{timestamps, formatted}
\entry{gettimeofday user-defined function}{217}{\code {gettimeofday} user-defined function}
\entry{per file initialization and cleanup}{218}{per file initialization and cleanup}
\entry{beginfile user-defined function}{219}{\code {beginfile} user-defined function}
\entry{endfile user-defined function}{219}{\code {endfile} user-defined function}
\entry{rewind user-defined function}{220}{\code {rewind} user-defined function}
\entry{fatal errors}{221}{fatal errors}
\entry{readable data files, checking}{221}{readable data files, checking}
\entry{non-readable data files, skipping}{221}{non-readable data files, skipping}
\entry{data files, non-readable, skipping}{221}{data files, non-readable, skipping}
\entry{data files, readable, checking}{221}{data files, readable, checking}
\entry{readable.awk program}{221}{\code {readable.awk} program}
\entry{fatal errors}{221}{fatal errors}
\entry{noassign.awk program}{221}{\code {noassign.awk} program}
\entry{getopt C library function}{222}{\code {getopt} C library function}
\entry{processing arguments}{222}{processing arguments}
\entry{argument processing}{222}{argument processing}
\entry{getopt user-defined function}{224}{\code {getopt} user-defined function}
\entry{getpwent C library function}{227}{\code {getpwent} C library function}
\entry{user information}{227}{user information}
\entry{login information}{227}{login information}
\entry{account information}{227}{account information}
\entry{password file}{227}{password file}
\entry{pwcat program}{228}{\command {pwcat} program}
\entry{Jacobs, Andrew}{229}{Jacobs, Andrew}
\entry{Robbins, Arnold}{229}{Robbins, Arnold}
\entry{Robbins, Miriam}{229}{Robbins, Miriam}
\entry{{\_}pw{\_}init user-defined function}{229}{\code {_pw_init} user-defined function}
\entry{getpwnam user-defined function}{231}{\code {getpwnam} user-defined function}
\entry{getpwuid user-defined function}{231}{\code {getpwuid} user-defined function}
\entry{getpwent user-defined function}{231}{\code {getpwent} user-defined function}
\entry{endpwent user-defined function}{231}{\code {endpwent} user-defined function}
\entry{getgrent C library function}{232}{\code {getgrent} C library function}
\entry{group information}{232}{group information}
\entry{account information}{232}{account information}
\entry{group file}{232}{group file}
\entry{grcat program}{232}{\command {grcat} program}
\entry{{\_}gr{\_}init user-defined function}{233}{\code {_gr_init} user-defined function}
\entry{getgrnam user-defined function}{235}{\code {getgrnam} user-defined function}
\entry{getgrgid user-defined function}{235}{\code {getgrgid} user-defined function}
\entry{getgruser user-defined function}{236}{\code {getgruser} user-defined function}
\entry{getgrent user-defined function}{236}{\code {getgrent} user-defined function}
\entry{endgrent user-defined function}{236}{\code {endgrent} user-defined function}
\entry{cut utility}{238}{\command {cut} utility}
\entry{cut.awk program}{238}{\code {cut.awk} program}
\entry{egrep utility}{243}{\command {egrep} utility}
\entry{egrep.awk program}{243}{\code {egrep.awk} program}
\entry{! operator}{246}{\code {!} operator}
\entry{backslash continuation}{247}{backslash continuation}
\entry{id utility}{247}{\command {id} utility}
\entry{id.awk program}{247}{\code {id.awk} program}
\entry{in operator}{249}{\code {in} operator}
\entry{split utility}{249}{\code {split} utility}
\entry{split.awk program}{249}{\code {split.awk} program}
\entry{tee utility}{251}{\code {tee} utility}
\entry{flag variables}{251}{flag variables}
\entry{tee.awk program}{251}{\code {tee.awk} program}
\entry{uniq utility}{253}{\command {uniq} utility}
\entry{uniq.awk program}{253}{\code {uniq.awk} program}
\entry{wc utility}{257}{\command {wc} utility}
\entry{wc.awk program}{257}{\code {wc.awk} program}
\entry{Texinfo}{260}{Texinfo}
\entry{dupword.awk program}{260}{\code {dupword.awk} program}
\entry{insomnia, cure for}{260}{insomnia, cure for}
\entry{Robbins, Arnold}{260}{Robbins, Arnold}
\entry{alarm.awk program}{261}{\code {alarm.awk} program}
\entry{sleep utility}{262}{\command {sleep} utility}
\entry{tr utility}{263}{\command {tr} utility}
\entry{translate.awk program}{264}{\code {translate.awk} program}
\entry{labels.awk program}{266}{\code {labels.awk} program}
\entry{sort utility}{268}{\command {sort} utility}
\entry{wordfreq.awk program}{268}{\code {wordfreq.awk} program}
\entry{Rakitzis, Byron}{269}{Rakitzis, Byron}
\entry{histsort.awk program}{269}{\code {histsort.awk} program}
\entry{Texinfo}{270}{Texinfo}
\entry{extract.awk program}{271}{\code {extract.awk} program}
\entry{sed utility}{274}{\command {sed} utility}
\entry{stream editor}{274}{stream editor}
\entry{Brennan, Michael}{274}{Brennan, Michael}
\entry{awksed.awk program}{274}{\command {awksed.awk} program}
\entry{simple stream editor}{274}{simple stream editor}
\entry{stream editor, simple}{274}{stream editor, simple}
\entry{sed utility}{277}{\command {sed} utility}
\entry{stream editor}{277}{stream editor}
\entry{igawk.sh program}{277}{\code {igawk.sh} program}
\entry{search path}{281}{search path}
\entry{directory search}{281}{directory search}
\entry{path, search}{281}{path, search}
\entry{search path, for source files}{281}{search path, for source files}
\entry{awk language, V.4 version}{284}{\command {awk} language, V.4 version}
\entry{extensions, Bell Laboratories awk}{285}{extensions, Bell Laboratories \command {awk}}
\entry{Kernighan, Brian}{285}{Kernighan, Brian}
\entry{compatibility mode}{286}{compatibility mode}
\entry{next file statement}{289}{\code {next file} statement}
\entry{contributors to gawk}{289}{contributors to \command {gawk}}
\entry{Aho, Alfred}{290}{Aho, Alfred}
\entry{Weinberger, Peter}{290}{Weinberger, Peter}
\entry{Kernighan, Brian}{290}{Kernighan, Brian}
\entry{Rubin, Paul}{290}{Rubin, Paul}
\entry{Fenlason, Jay}{290}{Fenlason, Jay}
\entry{Close, Diane}{290}{Close, Diane}
\entry{Stallman, Richard}{290}{Stallman, Richard}
\entry{Woods, John}{290}{Woods, John}
\entry{Trueman, David}{290}{Trueman, David}
\entry{Rankin, Pat}{290}{Rankin, Pat}
\entry{Kwok, Conrad}{290}{Kwok, Conrad}
\entry{Garfinkle, Scott}{290}{Garfinkle, Scott}
\entry{Williams, Kent}{290}{Williams, Kent}
\entry{Peterson, Hal}{290}{Peterson, Hal}
\entry{Rommel, Kai Uwe}{290}{Rommel, Kai Uwe}
\entry{Jaegermann, Michal}{290}{Jaegermann, Michal}
\entry{Fish, Fred}{290}{Fish, Fred}
\entry{Deifik, Scott}{290}{Deifik, Scott}
\entry{Grigera, Juan}{290}{Grigera, Juan}
\entry{Hankerson, Darrel}{290}{Hankerson, Darrel}
\entry{Zoulas, Christos}{290}{Zoulas, Christos}
\entry{Kahrs, Jurgen}{290}{Kahrs, J\"urgen}
\entry{Davies, Stephen}{290}{Davies, Stephen}
\entry{Brown, Martin}{290}{Brown, Martin}
\entry{Peters, Arno}{290}{Peters, Arno}
\entry{Broder, Alan J.\spacefactor =1000 }{291}{Broder, Alan J.\spacefactor =1000 }
\entry{Robbins, Arnold}{291}{Robbins, Arnold}
\entry{Linux}{293}{Linux}
\entry{GNU/Linux}{293}{GNU/Linux}
\entry{getting gawk}{293}{getting \command {gawk}}
\entry{anonymous ftp}{293}{anonymous \command {ftp}}
\entry{ftp, anonymous}{293}{\command {ftp}, anonymous}
\entry{source code, gawk}{293}{source code, \command {gawk}}
\entry{gawk, source code}{293}{\command {gawk}, source code}
\entry{FSF}{293}{FSF}
\entry{Free Software Foundation}{293}{Free Software Foundation}
\entry{artificial intelligence, using gawk}{295}{artificial intelligence, using \command {gawk}}
\entry{AI programming, using gawk}{295}{AI programming, using \command {gawk}}
\entry{Texinfo}{295}{Texinfo}
\entry{installation, unix}{297}{installation, unix}
\entry{--enable-portals configuration option}{298}{\code {--enable-portals} configuration option}
\entry{configuration option, --enable-portals}{298}{configuration option, \code {--enable-portals}}
\entry{Linux}{298}{Linux}
\entry{GNU/Linux}{298}{GNU/Linux}
\entry{--with-included-gettext configuration option}{298}{\code {--with-included-gettext} configuration option}
\entry{configuration option, --with-included-gettext}{298}{configuration option, \code {--with-included-gettext}}
\entry{--disable-nls configuration option}{298}{\code {--disable-nls} configuration option}
\entry{configuration option, --disable-nls}{298}{configuration option, \code {--disable-nls}}
\entry{configuring gawk}{298}{configuring \command {gawk}}
\entry{custom.h configuration file}{298}{\code {custom.h} configuration file}
\entry{amiga}{299}{amiga}
\entry{installation, amiga}{299}{installation, amiga}
\entry{BeOS}{300}{BeOS}
\entry{installation, beos}{300}{installation, beos}
\entry{installation, pc operating systems}{300}{installation, pc operating systems}
\entry{search path}{301}{search path}
\entry{directory search}{301}{directory search}
\entry{path, search}{301}{path, search}
\entry{search path, for source files}{301}{search path, for source files}
\entry{BINMODE variable}{302}{\code {BINMODE} variable}
\entry{installation, vms}{303}{installation, vms}
\entry{search path}{304}{search path}
\entry{directory search}{304}{directory search}
\entry{path, search}{304}{path, search}
\entry{search path, for source files}{304}{search path, for source files}
\entry{atari}{305}{atari}
\entry{installation, atari}{305}{installation, atari}
\entry{Linux}{306}{Linux}
\entry{GNU/Linux}{306}{GNU/Linux}
\entry{tandem}{307}{tandem}
\entry{installation, tandem}{307}{installation, tandem}
\entry{archeologists}{308}{archeologists}
\entry{bug reports}{308}{bug reports}
\entry{problem reports}{308}{problem reports}
\entry{reporting bugs}{308}{reporting bugs}
\entry{reporting problems}{308}{reporting problems}
\entry{bug-gawk@gnu.org bug reporting address}{308}{\code {bug-gawk@gnu.org} bug reporting address}
\entry{emaill address for bug reports, bug-gawk@gnu.org}{308}{emaill address for bug reports, \code {bug-gawk@gnu.org}}
\entry{bug reports, email address, bug-gawk@gnu.org}{308}{bug reports, email address, \code {bug-gawk@gnu.org}}
\entry{Robbins, Arnold}{308}{Robbins, Arnold}
\entry{comp.lang.awk Usenet news group}{308}{\code {comp.lang.awk} Usenet news group}
\entry{Fish, Fred}{309}{Fish, Fred}
\entry{Brown, Martin}{309}{Brown, Martin}
\entry{Deifik, Scott}{309}{Deifik, Scott}
\entry{Hankerson, Darrel}{309}{Hankerson, Darrel}
\entry{Grigera, Juan}{309}{Grigera, Juan}
\entry{Rommel, Kai Uwe}{309}{Rommel, Kai Uwe}
\entry{Davies, Stephen}{309}{Davies, Stephen}
\entry{Rankin, Pat}{309}{Rankin, Pat}
\entry{other awk implementations}{309}{other \command {awk} implementations}
\entry{Brennan, Michael}{309}{Brennan, Michael}
\entry{Kernighan, Brian}{309}{Kernighan, Brian}
\entry{Unix awk, source code}{309}{Unix \command {awk}, source code}
\entry{source code, Unix awk}{309}{source code, Unix \command {awk}}
\entry{GPL}{309}{GPL}
\entry{General Public License}{309}{General Public License}
\entry{GNU General Public License}{309}{GNU General Public License}
\entry{Brennan, Michael}{309}{Brennan, Michael}
\entry{mawk, source code}{309}{\command {mawk}, source code}
\entry{source code, mawk}{309}{source code, \command {mawk}}
\entry{extensions, mawk}{310}{extensions, \command {mawk}}
\entry{Sumner, Andrew}{310}{Sumner, Andrew}
\entry{awka compiler for awk programs}{310}{\command {awka} compiler for \command {awk} programs}
\entry{awka, source code}{310}{\command {awka}, source code}
\entry{source code, awka}{310}{source code, \command {awka}}
\entry{GPL}{310}{GPL}
\entry{General Public License}{310}{General Public License}
\entry{GNU General Public License}{310}{GNU General Public License}
\entry{LGPL}{310}{LGPL}
\entry{Lesser General Public License}{310}{Lesser General Public License}
\entry{GNU Lesser General Public License}{310}{GNU Lesser General Public License}
\entry{adding new features}{311}{adding new features}
\entry{features, adding to gawk}{311}{features, adding to \command {gawk}}
\entry{gawk, coding style}{312}{\command {gawk}, coding style}
\entry{coding style used in gawk}{312}{coding style used in \command {gawk}}
\entry{Texinfo}{313}{Texinfo}
\entry{porting gawk}{313}{porting \command {gawk}}
\entry{GPL}{314}{GPL}
\entry{General Public License}{314}{General Public License}
\entry{GNU General Public License}{314}{GNU General Public License}
\entry{Robinson, Will}{315}{Robinson, Will}
\entry{robot, the}{315}{robot, the}
\entry{Lost In Space}{315}{Lost In Space}
\entry{Linux}{315}{Linux}
\entry{GNU/Linux}{315}{GNU/Linux}
\entry{AWKNUM internal type}{315}{\code {AWKNUM} internal type}
\entry{internal type, AWKNUM}{315}{internal type, \code {AWKNUM}}
\entry{NODE internal type}{315}{\code {NODE} internal type}
\entry{internal type, NODE}{315}{internal type, \code {NODE}}
\entry{force{\_}number internal function}{315}{\code {force_number} internal function}
\entry{internal function, force{\_}number}{315}{internal function, \code {force_number}}
\entry{force{\_}string internal function}{316}{\code {force_string} internal function}
\entry{internal function, force{\_}string}{316}{internal function, \code {force_string}}
\entry{param{\_}cnt internal variable}{316}{\code {param_cnt} internal variable}
\entry{internal variable, param{\_}cnt}{316}{internal variable, \code {param_cnt}}
\entry{stptr internal variable}{316}{\code {stptr} internal variable}
\entry{stlen internal variable}{316}{\code {stlen} internal variable}
\entry{internal variable, stptr}{316}{internal variable, \code {stptr}}
\entry{internal variable, stlen}{316}{internal variable, \code {stlen}}
\entry{type internal variable}{316}{\code {type} internal variable}
\entry{internal variable, type}{316}{internal variable, \code {type}}
\entry{vname internal variable}{316}{\code {vname} internal variable}
\entry{internal variable, vname}{316}{internal variable, \code {vname}}
\entry{assoc{\_}clear internal function}{316}{\code {assoc_clear} internal function}
\entry{internal function, assoc{\_}clear}{316}{internal function, \code {assoc_clear}}
\entry{assoc{\_}lookup internal function}{316}{\code {assoc_lookup} internal function}
\entry{internal function, assoc{\_}lookup}{316}{internal function, \code {assoc_lookup}}
\entry{make{\_}string internal function}{316}{\code {make_string} internal function}
\entry{internal function, make{\_}string}{316}{internal function, \code {make_string}}
\entry{make{\_}number internal function}{316}{\code {make_number} internal function}
\entry{internal function, make{\_}number}{316}{internal function, \code {make_number}}
\entry{tmp{\_}string internal function}{316}{\code {tmp_string} internal function}
\entry{internal function, tmp{\_}string}{316}{internal function, \code {tmp_string}}
\entry{tmp{\_}number internal function}{316}{\code {tmp_number} internal function}
\entry{internal function, tmp{\_}number}{317}{internal function, \code {tmp_number}}
\entry{dupnode internal function}{317}{\code {dupnode} internal function}
\entry{internal function, dupnode}{317}{internal function, \code {dupnode}}
\entry{free{\_}temp internal macro}{317}{\code {free_temp} internal macro}
\entry{internal macro, free{\_}temp}{317}{internal macro, \code {free_temp}}
\entry{make{\_}builtin internal function}{317}{\code {make_builtin} internal function}
\entry{internal function, make{\_}builtin}{317}{internal function, \code {make_builtin}}
\entry{get{\_}argument internal function}{317}{\code {get_argument} internal function}
\entry{internal function, get{\_}argument}{317}{internal function, \code {get_argument}}
\entry{set{\_}value internal function}{317}{\code {set_value} internal function}
\entry{internal function, set{\_}value}{317}{internal function, \code {set_value}}
\entry{update{\_}ERRNO internal function}{317}{\code {update_ERRNO} internal function}
\entry{internal function, update{\_}ERRNO}{317}{internal function, \code {update_ERRNO}}
\entry{Linux}{320}{Linux}
\entry{GNU/Linux}{320}{GNU/Linux}
\entry{conventions, programming}{321}{conventions, programming}
\entry{programming conventions}{321}{programming conventions}
\entry{conventions, programming}{323}{conventions, programming}
\entry{programming conventions}{323}{programming conventions}
\entry{Linux}{324}{Linux}
\entry{GNU/Linux}{324}{GNU/Linux}
\entry{extension built-in function}{324}{\code {extension} built-in function}
\entry{PERL}{325}{PERL}
\entry{Wall, Larry}{325}{Wall, Larry}
\entry{Robbins, Arnold}{325}{Robbins, Arnold}
\entry{basic programming concepts}{329}{basic programming concepts}
\entry{programming concepts, basic}{329}{programming concepts, basic}
\entry{processing data}{329}{processing data}
\entry{compiled programs}{329}{compiled programs}
\entry{programs, compiled}{329}{programs, compiled}
\entry{interpreted programs}{329}{interpreted programs}
\entry{programs, interpreted}{329}{programs, interpreted}
\entry{programming, basic steps}{329}{programming, basic steps}
\entry{algorithm, definition of}{330}{algorithm, definition of}
\entry{record, definition of}{330}{record, definition of}
\entry{fields, definition of}{330}{fields, definition of}
\entry{data-driven languages}{330}{data-driven languages}
\entry{language, data-driven}{330}{language, data-driven}
\entry{variable, definition of}{330}{variable, definition of}
\entry{values, numeric}{330}{values, numeric}
\entry{values, string}{330}{values, string}
\entry{scalar, definition of}{330}{scalar, definition of}
\entry{integer, definition of}{331}{integer, definition of}
\entry{floating-point, definition of}{331}{floating-point, definition of}
\entry{unsigned integers}{331}{unsigned integers}
\entry{integer, unsigned}{331}{integer, unsigned}
\entry{double-precision floating-point, definition of}{331}{double-precision floating-point, definition of}
\entry{single-precision floating-point, definition of}{331}{single-precision floating-point, definition of}
\entry{null string, definition of}{331}{null string, definition of}
\entry{empty string, definition of}{331}{empty string, definition of}
\entry{Kernighan, Brian}{332}{Kernighan, Brian}
\entry{Ritchie, Dennis}{332}{Ritchie, Dennis}
\entry{floating-point, precision issues}{333}{floating-point, precision issues}
\entry{negative zero}{333}{negative zero}
\entry{positive zero}{333}{positive zero}
\entry{zero, negative vs.\spacefactor =1000  positive}{333}{zero, negative vs.\spacefactor =1000  positive}
\entry{floating-point, positive and negative values for zero}{333}{floating-point, positive and negative values for zero}
\entry{Spencer, Henry}{335}{Spencer, Henry}
\entry{sed utility}{335}{\command {sed} utility}
\entry{amazing awk assembler (aaa)}{335}{amazing \command {awk} assembler (\command {aaa})}
\entry{amazingly workable formatter (awf)}{335}{amazingly workable formatter (\command {awf})}
\entry{awf (amazingly workable formatter) program}{335}{\command {awf} (amazingly workable formatter) program}
\entry{ANSI}{335}{ANSI}
\entry{ISO 8859-1}{337}{ISO 8859-1}
\entry{ISO Latin-1}{337}{ISO Latin-1}
\entry{character sets (machine character encodings)}{337}{character sets (machine character encodings)}
\entry{chem utility}{337}{\command {chem} utility}
\entry{compiled programs}{337}{compiled programs}
\entry{dark corner}{338}{dark corner}
\entry{epoch, definition of}{339}{epoch, definition of}
\entry{FSF}{340}{FSF}
\entry{Free Software Foundation}{340}{Free Software Foundation}
\entry{Stallman, Richard}{340}{Stallman, Richard}
\entry{GPL}{340}{GPL}
\entry{General Public License}{340}{General Public License}
\entry{GNU General Public License}{340}{GNU General Public License}
\entry{FSF}{340}{FSF}
\entry{Free Software Foundation}{340}{Free Software Foundation}
\entry{GNU Project}{340}{GNU Project}
\entry{interpreted programs}{341}{interpreted programs}
\entry{ISO}{341}{ISO}
\entry{LGPL}{341}{LGPL}
\entry{Lesser General Public License}{341}{Lesser General Public License}
\entry{GNU Lesser General Public License}{341}{GNU Lesser General Public License}
\entry{P1003.2 POSIX standard}{342}{P1003.2 POSIX standard}
\entry{Linux}{345}{Linux}
\entry{GNU/Linux}{345}{GNU/Linux}
\entry{Unix}{345}{Unix}
\entry{BSD-based operating systems}{345}{BSD-based operating systems}
\entry{NetBSD}{345}{NetBSD}
\entry{FreeBSD}{345}{FreeBSD}
\entry{OpenBSD}{345}{OpenBSD}
\entry{FDL}{355}{FDL}
\entry{Free Documentation License}{355}{Free Documentation License}
\entry{GNU Free Documentation License}{355}{GNU Free Documentation License}
