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