\entry {What is awk}{1}{What is {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Uses of awk}{1}{Uses of {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Acronym}{1}{Acronym} \entry {History of awk}{1}{History of {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Manual, using this}{9}{Manual, using this} \entry {Using this manual}{9}{Using this manual} \entry {Language, awk}{9}{Language, {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Program, awk}{9}{Program, {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {awk language}{9}{{\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {} language} \entry {awk program}{9}{{\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {} program} \entry {Input file, sample}{9}{Input file, sample} \entry {Sample input file}{9}{Sample input file} \entry {`{\fam \ttfam \tentt \rawbackslash \frenchspacing BBS-list}'\hbox {} file}{9}{`{\fam \ttfam \tentt \rawbackslash \frenchspacing BBS-list}'\hbox {} file} \entry {`{\fam \ttfam \tentt \rawbackslash \frenchspacing inventory-shipped}'\hbox {} file}{10}{`{\fam \ttfam \tentt \rawbackslash \frenchspacing inventory-shipped}'\hbox {} file} \entry {Script, definition of}{11}{Script, definition of} \entry {Rule, definition of}{11}{Rule, definition of} \entry {Pattern, definition of}{11}{Pattern, definition of} \entry {Action, definition of}{11}{Action, definition of} \entry {Program, definition of}{11}{Program, definition of} \entry {Basic function of gawk}{11}{Basic function of {\fam \ttfam \tentt \rawbackslash \frenchspacing gawk}\hbox {}} \entry {Action, curly braces}{11}{Action, curly braces} \entry {Curly braces}{11}{Curly braces} \entry {print $0}{11}{{\fam \ttfam \tentt \rawbackslash \frenchspacing print $0}\hbox {}} \entry {Action, default}{11}{Action, default} \entry {Pattern, default}{11}{Pattern, default} \entry {Default action}{11}{Default action} \entry {Default pattern}{11}{Default pattern} \entry {How gawk works}{12}{How gawk works} \entry {Command line formats}{14}{Command line formats} \entry {Running gawk programs}{14}{Running gawk programs} \entry {Single quotes, why they are needed}{15}{Single quotes, why they are needed} \entry {Standard input}{15}{Standard input} \entry {Input, standard}{15}{Input, standard} \entry {Case sensitivity and gawk}{16}{Case sensitivity and gawk} \entry {Pattern, case sensitive}{16}{Pattern, case sensitive} \entry {running long programs}{16}{running long programs} \entry {-f option}{16}{-f option} \entry {program file}{16}{program file} \entry {file, awk program}{16}{file, {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {} program} \entry {Executable Scripts}{17}{Executable Scripts} \entry {Scripts, Executable}{17}{Scripts, Executable} \entry {Self contained Programs}{17}{Self contained Programs} \entry {Program, Self contained}{17}{Program, Self contained} \entry {#!}{17}{#!} \entry {Shell Scripts}{17}{Shell Scripts} \entry {Scripts, Shell}{17}{Scripts, Shell} \entry {Command Line}{18}{Command Line} \entry {Invocation of gawk}{18}{Invocation of {\fam \ttfam \tentt \rawbackslash \frenchspacing gawk}\hbox {}} \entry {Arguments, Command Line}{18}{Arguments, Command Line} \entry {Options, Command Line}{18}{Options, Command Line} \entry {Multiple passes over data}{19}{Multiple passes over data} \entry {Passes, Multiple}{19}{Passes, Multiple} \entry {Comments}{19}{Comments} \entry {Use of comments}{19}{Use of comments} \entry {Documenting awk programs}{19}{Documenting {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {} programs} \entry {Programs, documenting}{19}{Programs, documenting} \entry {Backslash Continuation}{20}{Backslash Continuation} \entry {Continuing statements on the next line}{20}{Continuing statements on the next line} \entry {Multiple statements on one line}{21}{Multiple statements on one line} \entry {When to use awk}{21}{When to use {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Applications of awk}{21}{Applications of {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Emacs Lisp}{21}{Emacs Lisp} \entry {Reading files, general}{23}{Reading files, general} \entry {Input, general}{23}{Input, general} \entry {Standard input}{23}{Standard input} \entry {Input, standard}{23}{Input, standard} \entry {General input}{23}{General input} \entry {Record separator, RS}{23}{Record separator, {\fam \ttfam \tentt \rawbackslash \frenchspacing RS}\hbox {}} \entry {Changing the record separator}{23}{Changing the record separator} \entry {Number of records, NR}{24}{Number of records, {\fam \ttfam \tentt \rawbackslash \frenchspacing NR}\hbox {}} \entry {Number of records, FNR}{24}{Number of records, {\fam \ttfam \tentt \rawbackslash \frenchspacing FNR}\hbox {}} \entry {Examining fields}{24}{Examining fields} \entry {Fields}{24}{Fields} \entry {Accessing fields}{24}{Accessing fields} \entry {$ (field operator)}{24}{{\fam \ttfam \tentt \rawbackslash \frenchspacing $}\hbox {} (field operator)} \entry {Operators, $}{24}{Operators, {\fam \ttfam \tentt \rawbackslash \frenchspacing $}\hbox {}} \entry {$NF, last field in record}{25}{{\fam \ttfam \tentt \rawbackslash \frenchspacing $NF}\hbox {}, last field in record} \entry {Number of fields, NF}{25}{Number of fields, {\fam \ttfam \tentt \rawbackslash \frenchspacing NF}\hbox {}} \entry {Fields, negative-numbered}{26}{Fields, negative-numbered} \entry {Negative-numbered fields}{26}{Negative-numbered fields} \entry {Field, changing contents of}{27}{Field, changing contents of} \entry {Changing contents of a field}{27}{Changing contents of a field} \entry {Fields, semantics of}{28}{Fields, semantics of} \entry {Fields, separating}{28}{Fields, separating} \entry {Field separator, FS}{28}{Field separator, {\fam \ttfam \tentt \rawbackslash \frenchspacing FS}\hbox {}} \entry {Separator character, choice of}{29}{Separator character, choice of} \entry {Field separator, choice of}{29}{Field separator, choice of} \entry {Regular expressions, field separators and}{29}{Regular expressions, field separators and} \entry {Field separator, setting on command line}{29}{Field separator, setting on command line} \entry {Command line, setting FS on}{29}{Command line, setting {\fam \ttfam \tentt \rawbackslash \frenchspacing FS}\hbox {} on} \entry {Multiple line records}{31}{Multiple line records} \entry {Input, multiple line records}{31}{Input, multiple line records} \entry {Reading files, multiple line records}{31}{Reading files, multiple line records} \entry {Records, multiple line}{31}{Records, multiple line} \entry {Input, getline function}{32}{Input, {\fam \ttfam \tentt \rawbackslash \frenchspacing getline}\hbox {} function} \entry {Reading files, getline function}{32}{Reading files, {\fam \ttfam \tentt \rawbackslash \frenchspacing getline}\hbox {} function} \entry {close statement for input}{36}{{\fam \ttfam \tentt \rawbackslash \frenchspacing close}\hbox {} statement for input} \entry {Printing, general}{39}{Printing, general} \entry {Output}{39}{Output} \entry {print statement}{39}{{\fam \ttfam \tentt \rawbackslash \frenchspacing print}\hbox {} statement} \entry {Output field separator, OFS}{41}{Output field separator, {\fam \ttfam \tentt \rawbackslash \frenchspacing OFS}\hbox {}} \entry {Output record separator, ORS}{41}{Output record separator, {\fam \ttfam \tentt \rawbackslash \frenchspacing ORS}\hbox {}} \entry {Output redirection}{42}{Output redirection} \entry {Redirection of output}{42}{Redirection of output} \entry {{\fam \ttfam \tentt \gtr }}{42}{{\fam \ttfam \tentt \rawbackslash \frenchspacing {\fam \ttfam \tentt \gtr }}\hbox {}} \entry {{\fam \ttfam \tentt \gtr }{\fam \ttfam \tentt \gtr }}{42}{{\fam \ttfam \tentt \rawbackslash \frenchspacing {\fam \ttfam \tentt \gtr }{\fam \ttfam \tentt \gtr }}\hbox {}} \entry {{\fam \ttfam \tentt \char '174}}{42}{{\fam \ttfam \tentt \rawbackslash \frenchspacing {\fam \ttfam \tentt \char '174}}\hbox {}} \entry {Pipes for output}{42}{Pipes for output} \entry {Output, piping}{42}{Output, piping} \entry {close statement for output}{43}{{\fam \ttfam \tentt \rawbackslash \frenchspacing close}\hbox {} statement for output} \entry {Closing files and pipes}{43}{Closing files and pipes} \entry {Formatted output}{44}{Formatted output} \entry {Output, formatted}{44}{Output, formatted} \entry {printf statement, format of}{45}{{\fam \ttfam \tentt \rawbackslash \frenchspacing printf}\hbox {} statement, format of} \entry {Format string}{45}{Format string} \entry {printf, format-control characters}{45}{{\fam \ttfam \tentt \rawbackslash \frenchspacing printf}\hbox {}, format-control characters} \entry {Format specifier}{45}{Format specifier} \entry {printf, modifiers}{46}{{\fam \ttfam \tentt \rawbackslash \frenchspacing printf}\hbox {}, modifiers} \entry {Modifiers (in format specifiers)}{46}{Modifiers (in format specifiers)} \entry {One-liners}{49}{One-liners} \entry {Patterns, definition of}{51}{Patterns, definition of} \entry {Patterns, types of}{51}{Patterns, types of} \entry {Empty pattern}{51}{Empty pattern} \entry {Pattern, empty}{51}{Pattern, empty} \entry {Pattern, regular expressions}{52}{Pattern, regular expressions} \entry {Regexp}{52}{Regexp} \entry {Regular expressions as patterns}{52}{Regular expressions as patterns} \entry {Regular expression matching operators}{52}{Regular expression matching operators} \entry {String-matching operators}{52}{String-matching operators} \entry {Operators, string-matching}{52}{Operators, string-matching} \entry {Operators, regular expression matching}{52}{Operators, regular expression matching} \entry {regexp search operators}{52}{regexp search operators} \entry {Computed Regular Expressions}{52}{Computed Regular Expressions} \entry {Regular Expressions, Computed}{52}{Regular Expressions, Computed} \entry {Dynamic Regular Expressions}{52}{Dynamic Regular Expressions} \entry {Regular Expressions, Dynamic}{52}{Regular Expressions, Dynamic} \entry {Metacharacters}{53}{Metacharacters} \entry {Regular expression, metacharacters}{53}{Regular expression, metacharacters} \entry {Comparison expressions as patterns}{55}{Comparison expressions as patterns} \entry {Pattern, comparison expressions}{55}{Pattern, comparison expressions} \entry {Relational operators}{55}{Relational operators} \entry {Operators, relational}{55}{Operators, relational} \entry {Range pattern}{56}{Range pattern} \entry {patterns, range}{56}{patterns, range} \entry {BEGIN, special pattern}{57}{{\fam \ttfam \tentt \rawbackslash \frenchspacing BEGIN}\hbox {}, special pattern} \entry {Patterns, BEGIN}{57}{Patterns, {\fam \ttfam \tentt \rawbackslash \frenchspacing BEGIN}\hbox {}} \entry {END, special pattern}{57}{{\fam \ttfam \tentt \rawbackslash \frenchspacing END}\hbox {}, special pattern} \entry {Patterns, END}{57}{Patterns, {\fam \ttfam \tentt \rawbackslash \frenchspacing END}\hbox {}} \entry {Patterns, boolean}{58}{Patterns, boolean} \entry {Boolean patterns}{58}{Boolean patterns} \entry {Conditional Patterns}{59}{Conditional Patterns} \entry {Patterns, Conditional}{59}{Patterns, Conditional} \entry {Ternary Operator}{59}{Ternary Operator} \entry {Operator, Ternary}{59}{Operator, Ternary} \entry {Action, general}{61}{Action, general} \entry {Curly braces}{61}{Curly braces} \entry {Action, curly braces}{61}{Action, curly braces} \entry {Action, separating statements}{61}{Action, separating statements} \entry {Expressions}{61}{Expressions} \entry {Statements}{61}{Statements} \entry {Compound statements}{61}{Compound statements} \entry {Function definitions}{61}{Function definitions} \entry {Constants, types of}{63}{Constants, types of} \entry {String constants}{63}{String constants} \entry {String value}{63}{String value} \entry {Numerical constant}{63}{Numerical constant} \entry {Numerical value}{63}{Numerical value} \entry {Differences between gawk and awk}{63}{Differences between {\fam \ttfam \tentt \rawbackslash \frenchspacing gawk}\hbox {} and {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {Escape sequence notation}{63}{Escape sequence notation} \entry {Variables, user-defined}{64}{Variables, user-defined} \entry {User-defined variables}{64}{User-defined variables} \entry {Built-in variables}{64}{Built-in variables} \entry {Variables, built-in}{64}{Variables, built-in} \entry {Arithmetic operators}{65}{Arithmetic operators} \entry {Operators, arithmetic}{65}{Operators, arithmetic} \entry {Mod function, semantics of}{65}{Mod function, semantics of} \entry {Differences between gawk and awk}{65}{Differences between {\fam \ttfam \tentt \rawbackslash \frenchspacing gawk}\hbox {} and {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {}} \entry {String operators}{65}{String operators} \entry {Operators, string}{65}{Operators, string} \entry {Concatenation}{65}{Concatenation} \entry {Comparison expressions}{66}{Comparison expressions} \entry {Expressions, comparison}{66}{Expressions, comparison} \entry {Relational operators}{66}{Relational operators} \entry {Operators, relational}{66}{Operators, relational} \entry {Expressions, boolean}{67}{Expressions, boolean} \entry {Boolean expressions}{67}{Boolean expressions} \entry {Operators, boolean}{67}{Operators, boolean} \entry {Boolean operators}{67}{Boolean operators} \entry {Assignment operators}{68}{Assignment operators} \entry {Operators, assignment}{68}{Operators, assignment} \entry {Lvalue}{68}{Lvalue} \entry {Increment operators}{70}{Increment operators} \entry {Operators, increment}{70}{Operators, increment} \entry {Conversion of strings and numbers}{71}{Conversion of strings and numbers} \entry {Conditional expression}{72}{Conditional expression} \entry {Expression, conditional}{72}{Expression, conditional} \entry {Function call}{73}{Function call} \entry {Calling a function}{73}{Calling a function} \entry {Arguments in function call}{73}{Arguments in function call} \entry {Statements}{75}{Statements} \entry {if statement}{75}{{\fam \ttfam \tentt \rawbackslash \frenchspacing if}\hbox {} statement} \entry {while statement}{76}{{\fam \ttfam \tentt \rawbackslash \frenchspacing while}\hbox {} statement} \entry {Loop}{76}{Loop} \entry {Body of a loop}{76}{Body of a loop} \entry {for statement}{77}{{\fam \ttfam \tentt \rawbackslash \frenchspacing for}\hbox {} statement} \entry {break statement}{79}{{\fam \ttfam \tentt \rawbackslash \frenchspacing break}\hbox {} statement} \entry {Loops, breaking out of}{79}{Loops, breaking out of} \entry {continue statement}{80}{{\fam \ttfam \tentt \rawbackslash \frenchspacing continue}\hbox {} statement} \entry {next statement}{81}{{\fam \ttfam \tentt \rawbackslash \frenchspacing next}\hbox {} statement} \entry {exit statement}{82}{{\fam \ttfam \tentt \rawbackslash \frenchspacing exit}\hbox {} statement} \entry {Arrays}{83}{Arrays} \entry {Arrays, definition of}{83}{Arrays, definition of} \entry {Associative arrays}{83}{Associative arrays} \entry {Array reference}{85}{Array reference} \entry {Element of array}{85}{Element of array} \entry {Reference to array}{85}{Reference to array} \entry {Arrays, determining presence of elements}{85}{Arrays, determining presence of elements} \entry {Array assignment}{86}{Array assignment} \entry {Element assignment}{86}{Element assignment} \entry {for (x in \dots {})}{87}{{\fam \ttfam \tentt \rawbackslash \frenchspacing for (x in \dots {})}\hbox {}} \entry {Arrays, special for statement}{87}{Arrays, special {\fam \ttfam \tentt \rawbackslash \frenchspacing for}\hbox {} statement} \entry {Scanning an array}{87}{Scanning an array} \entry {delete statement}{88}{{\fam \ttfam \tentt \rawbackslash \frenchspacing delete}\hbox {} statement} \entry {Deleting elements of arrays}{88}{Deleting elements of arrays} \entry {Removing elements of arrays}{88}{Removing elements of arrays} \entry {Arrays, deleting an element}{88}{Arrays, deleting an element} \entry {Subscripts, multi-dimensional in arrays}{89}{Subscripts, multi-dimensional in arrays} \entry {Arrays, multi-dimensional subscripts}{89}{Arrays, multi-dimensional subscripts} \entry {Built-in functions, list of}{93}{Built-in functions, list of} \entry {Interaction of awk with other programs}{98}{Interaction of {\fam \ttfam \tentt \rawbackslash \frenchspacing awk}\hbox {} with other programs} \entry {User-defined functions}{99}{User-defined functions} \entry {Functions, user-defined}{99}{Functions, user-defined} \entry {return statement}{102}{{\fam \ttfam \tentt \rawbackslash \frenchspacing return}\hbox {} statement} \entry {Special variables, user modifiable}{105}{Special variables, user modifiable}