'xrdef {Preface-title}{Preface} 'xrdef {Preface-pg}{1} 'xrdef {Preface-snt}{} 'xrdef {History-title}{History of \code {awk} and \code {gawk}} 'xrdef {History-pg}{1} 'xrdef {History-snt}{} 'xrdef {Manual History-title}{The GNU Project and This Book} 'xrdef {Manual History-pg}{1} 'xrdef {Manual History-snt}{} 'xrdef {Acknowledgements-title}{Acknowledgements} 'xrdef {Acknowledgements-pg}{3} 'xrdef {Acknowledgements-snt}{} 'xrdef {What Is Awk-title}{Introduction} 'xrdef {What Is Awk-pg}{5} 'xrdef {What Is Awk-snt}{Chapter'tie1} 'xrdef {This Manual-title}{Using This Book} 'xrdef {This Manual-pg}{5} 'xrdef {This Manual-snt}{Section'tie1.1} 'xrdef {Conventions-title}{Typographical Conventions} 'xrdef {Conventions-pg}{6} 'xrdef {Conventions-snt}{Section'tie1.2} 'xrdef {Sample Data Files-title}{Data Files for the Examples} 'xrdef {Sample Data Files-pg}{7} 'xrdef {Sample Data Files-snt}{Section'tie1.3} 'xrdef {Getting Started-title}{Getting Started with \code {awk}} 'xrdef {Getting Started-pg}{9} 'xrdef {Getting Started-snt}{Chapter'tie2} 'xrdef {Names-title}{A Rose By Any Other Name} 'xrdef {Names-pg}{9} 'xrdef {Names-snt}{Section'tie2.1} 'xrdef {Running gawk-title}{How to Run \code {awk} Programs} 'xrdef {Running gawk-pg}{10} 'xrdef {Running gawk-snt}{Section'tie2.2} 'xrdef {One-shot-title}{One-shot Throw-away \code {awk} Programs} 'xrdef {One-shot-pg}{10} 'xrdef {One-shot-snt}{Section'tie2.2.1} 'xrdef {Read Terminal-title}{Running \code {awk} without Input Files} 'xrdef {Read Terminal-pg}{11} 'xrdef {Read Terminal-snt}{Section'tie2.2.2} 'xrdef {Long-title}{Running Long Programs} 'xrdef {Long-pg}{11} 'xrdef {Long-snt}{Section'tie2.2.3} 'xrdef {Executable Scripts-title}{Executable \code {awk} Programs} 'xrdef {Executable Scripts-pg}{12} 'xrdef {Executable Scripts-snt}{Section'tie2.2.4} 'xrdef {Comments-title}{Comments in \code {awk} Programs} 'xrdef {Comments-pg}{13} 'xrdef {Comments-snt}{Section'tie2.2.5} 'xrdef {Very Simple-title}{A Very Simple Example} 'xrdef {Very Simple-pg}{13} 'xrdef {Very Simple-snt}{Section'tie2.3} 'xrdef {Two Rules-title}{An Example with Two Rules} 'xrdef {Two Rules-pg}{14} 'xrdef {Two Rules-snt}{Section'tie2.4} 'xrdef {More Complex-title}{A More Complex Example} 'xrdef {More Complex-pg}{15} 'xrdef {More Complex-snt}{Section'tie2.5} 'xrdef {Statements/Lines-title}{\code {awk} Statements Versus Lines} 'xrdef {Statements/Lines-pg}{16} 'xrdef {Statements/Lines-snt}{Section'tie2.6} 'xrdef {Other Features-title}{Other Features of \code {awk}} 'xrdef {Other Features-pg}{18} 'xrdef {Other Features-snt}{Section'tie2.7} 'xrdef {When-title}{When to Use \code {awk}} 'xrdef {When-pg}{18} 'xrdef {When-snt}{Section'tie2.8} 'xrdef {One-liners-title}{Useful One Line Programs} 'xrdef {One-liners-pg}{21} 'xrdef {One-liners-snt}{Chapter'tie3} 'xrdef {Regexp-title}{Regular Expressions} 'xrdef {Regexp-pg}{23} 'xrdef {Regexp-snt}{Chapter'tie4} 'xrdef {Regexp Usage-title}{How to Use Regular Expressions} 'xrdef {Regexp Usage-pg}{23} 'xrdef {Regexp Usage-snt}{Section'tie4.1} 'xrdef {Escape Sequences-title}{Escape Sequences} 'xrdef {Escape Sequences-pg}{24} 'xrdef {Escape Sequences-snt}{Section'tie4.2} 'xrdef {Regexp Operators-title}{Regular Expression Operators} 'xrdef {Regexp Operators-pg}{26} 'xrdef {Regexp Operators-snt}{Section'tie4.3} 'xrdef {GNU Regexp Operators-title}{Additional Regexp Operators Only in \code {gawk}} 'xrdef {GNU Regexp Operators-pg}{31} 'xrdef {GNU Regexp Operators-snt}{Section'tie4.4} 'xrdef {Case-sensitivity-title}{Case-sensitivity in Matching} 'xrdef {Case-sensitivity-pg}{33} 'xrdef {Case-sensitivity-snt}{Section'tie4.5} 'xrdef {Leftmost Longest-title}{How Much Text Matches?} 'xrdef {Leftmost Longest-pg}{34} 'xrdef {Leftmost Longest-snt}{Section'tie4.6} 'xrdef {Computed Regexps-title}{Using Dynamic Regexps} 'xrdef {Computed Regexps-pg}{35} 'xrdef {Computed Regexps-snt}{Section'tie4.7} 'xrdef {Reading Files-title}{Reading Input Files} 'xrdef {Reading Files-pg}{37} 'xrdef {Reading Files-snt}{Chapter'tie5} 'xrdef {Records-title}{How Input is Split into Records} 'xrdef {Records-pg}{37} 'xrdef {Records-snt}{Section'tie5.1} 'xrdef {Fields-title}{Examining Fields} 'xrdef {Fields-pg}{40} 'xrdef {Fields-snt}{Section'tie5.2} 'xrdef {Non-Constant Fields-title}{Non-constant Field Numbers} 'xrdef {Non-Constant Fields-pg}{41} 'xrdef {Non-Constant Fields-snt}{Section'tie5.3} 'xrdef {Changing Fields-title}{Changing the Contents of a Field} 'xrdef {Changing Fields-pg}{42} 'xrdef {Changing Fields-snt}{Section'tie5.4} 'xrdef {Field Separators-title}{Specifying How Fields are Separated} 'xrdef {Field Separators-pg}{44} 'xrdef {Field Separators-snt}{Section'tie5.5} 'xrdef {Basic Field Splitting-title}{The Basics of Field Separating} 'xrdef {Basic Field Splitting-pg}{44} 'xrdef {Basic Field Splitting-snt}{Section'tie5.5.1} 'xrdef {Regexp Field Splitting-title}{Using Regular Expressions to Separate Fields} 'xrdef {Regexp Field Splitting-pg}{45} 'xrdef {Regexp Field Splitting-snt}{Section'tie5.5.2} 'xrdef {Single Character Fields-title}{Making Each Character a Separate Field} 'xrdef {Single Character Fields-pg}{46} 'xrdef {Single Character Fields-snt}{Section'tie5.5.3} 'xrdef {Command Line Field Separator-title}{Setting \code {FS} from the Command Line} 'xrdef {Command Line Field Separator-pg}{47} 'xrdef {Command Line Field Separator-snt}{Section'tie5.5.4} 'xrdef {Field Splitting Summary-title}{Field Splitting Summary} 'xrdef {Field Splitting Summary-pg}{48} 'xrdef {Field Splitting Summary-snt}{Section'tie5.5.5} 'xrdef {Constant Size-title}{Reading Fixed-width Data} 'xrdef {Constant Size-pg}{49} 'xrdef {Constant Size-snt}{Section'tie5.6} 'xrdef {Multiple Line-title}{Multiple-Line Records} 'xrdef {Multiple Line-pg}{51} 'xrdef {Multiple Line-snt}{Section'tie5.7} 'xrdef {Getline-title}{Explicit Input with \code {getline}} 'xrdef {Getline-pg}{53} 'xrdef {Getline-snt}{Section'tie5.8} 'xrdef {Getline Intro-title}{Introduction to \code {getline}} 'xrdef {Getline Intro-pg}{54} 'xrdef {Getline Intro-snt}{Section'tie5.8.1} 'xrdef {Plain Getline-title}{Using \code {getline} with No Arguments} 'xrdef {Plain Getline-pg}{54} 'xrdef {Plain Getline-snt}{Section'tie5.8.2} 'xrdef {Getline/Variable-title}{Using \code {getline} Into a Variable} 'xrdef {Getline/Variable-pg}{55} 'xrdef {Getline/Variable-snt}{Section'tie5.8.3} 'xrdef {Getline/File-title}{Using \code {getline} from a File} 'xrdef {Getline/File-pg}{56} 'xrdef {Getline/File-snt}{Section'tie5.8.4} 'xrdef {Getline/Variable/File-title}{Using \code {getline} Into a Variable from a File} 'xrdef {Getline/Variable/File-pg}{56} 'xrdef {Getline/Variable/File-snt}{Section'tie5.8.5} 'xrdef {Getline/Pipe-title}{Using \code {getline} from a Pipe} 'xrdef {Getline/Pipe-pg}{57} 'xrdef {Getline/Pipe-snt}{Section'tie5.8.6} 'xrdef {Getline/Variable/Pipe-title}{Using \code {getline} Into a Variable from a Pipe} 'xrdef {Getline/Variable/Pipe-pg}{58} 'xrdef {Getline/Variable/Pipe-snt}{Section'tie5.8.7} 'xrdef {Getline Summary-title}{Summary of \code {getline} Variants} 'xrdef {Getline Summary-pg}{58} 'xrdef {Getline Summary-snt}{Section'tie5.8.8} 'xrdef {Printing-title}{Printing Output} 'xrdef {Printing-pg}{61} 'xrdef {Printing-snt}{Chapter'tie6} 'xrdef {Print-title}{The \code {print} Statement} 'xrdef {Print-pg}{61} 'xrdef {Print-snt}{Section'tie6.1} 'xrdef {Print Examples-title}{Examples of \code {print} Statements} 'xrdef {Print Examples-pg}{62} 'xrdef {Print Examples-snt}{Section'tie6.2} 'xrdef {Output Separators-title}{Output Separators} 'xrdef {Output Separators-pg}{63} 'xrdef {Output Separators-snt}{Section'tie6.3} 'xrdef {OFMT-title}{Controlling Numeric Output with \code {print}} 'xrdef {OFMT-pg}{64} 'xrdef {OFMT-snt}{Section'tie6.4} 'xrdef {Printf-title}{Using \code {printf} Statements for Fancier Printing} 'xrdef {Printf-pg}{64} 'xrdef {Printf-snt}{Section'tie6.5} 'xrdef {Basic Printf-title}{Introduction to the \code {printf} Statement} 'xrdef {Basic Printf-pg}{65} 'xrdef {Basic Printf-snt}{Section'tie6.5.1} 'xrdef {Control Letters-title}{Format-Control Letters} 'xrdef {Control Letters-pg}{65} 'xrdef {Control Letters-snt}{Section'tie6.5.2} 'xrdef {Format Modifiers-title}{Modifiers for \code {printf} Formats} 'xrdef {Format Modifiers-pg}{66} 'xrdef {Format Modifiers-snt}{Section'tie6.5.3} 'xrdef {Printf Examples-title}{Examples Using \code {printf}} 'xrdef {Printf Examples-pg}{68} 'xrdef {Printf Examples-snt}{Section'tie6.5.4} 'xrdef {Redirection-title}{Redirecting Output of \code {print} and \code {printf}} 'xrdef {Redirection-pg}{70} 'xrdef {Redirection-snt}{Section'tie6.6} 'xrdef {Special Files-title}{Special File Names in \code {gawk}} 'xrdef {Special Files-pg}{72} 'xrdef {Special Files-snt}{Section'tie6.7} 'xrdef {Close Files And Pipes-title}{Closing Input and Output Files and Pipes} 'xrdef {Close Files And Pipes-pg}{74} 'xrdef {Close Files And Pipes-snt}{Section'tie6.8} 'xrdef {Expressions-title}{Expressions} 'xrdef {Expressions-pg}{77} 'xrdef {Expressions-snt}{Chapter'tie7} 'xrdef {Constants-title}{Constant Expressions} 'xrdef {Constants-pg}{77} 'xrdef {Constants-snt}{Section'tie7.1} 'xrdef {Scalar Constants-title}{Numeric and String Constants} 'xrdef {Scalar Constants-pg}{77} 'xrdef {Scalar Constants-snt}{Section'tie7.1.1} 'xrdef {Regexp Constants-title}{Regular Expression Constants} 'xrdef {Regexp Constants-pg}{77} 'xrdef {Regexp Constants-snt}{Section'tie7.1.2} 'xrdef {Using Constant Regexps-title}{Using Regular Expression Constants} 'xrdef {Using Constant Regexps-pg}{78} 'xrdef {Using Constant Regexps-snt}{Section'tie7.2} 'xrdef {Variables-title}{Variables} 'xrdef {Variables-pg}{79} 'xrdef {Variables-snt}{Section'tie7.3} 'xrdef {Using Variables-title}{Using Variables in a Program} 'xrdef {Using Variables-pg}{79} 'xrdef {Using Variables-snt}{Section'tie7.3.1} 'xrdef {Assignment Options-title}{Assigning Variables on the Command Line} 'xrdef {Assignment Options-pg}{80} 'xrdef {Assignment Options-snt}{Section'tie7.3.2} 'xrdef {Conversion-title}{Conversion of Strings and Numbers} 'xrdef {Conversion-pg}{81} 'xrdef {Conversion-snt}{Section'tie7.4} 'xrdef {Arithmetic Ops-title}{Arithmetic Operators} 'xrdef {Arithmetic Ops-pg}{82} 'xrdef {Arithmetic Ops-snt}{Section'tie7.5} 'xrdef {Concatenation-title}{String Concatenation} 'xrdef {Concatenation-pg}{83} 'xrdef {Concatenation-snt}{Section'tie7.6} 'xrdef {Assignment Ops-title}{Assignment Expressions} 'xrdef {Assignment Ops-pg}{84} 'xrdef {Assignment Ops-snt}{Section'tie7.7} 'xrdef {Increment Ops-title}{Increment and Decrement Operators} 'xrdef {Increment Ops-pg}{86} 'xrdef {Increment Ops-snt}{Section'tie7.8} 'xrdef {Truth Values-title}{True and False in \code {awk}} 'xrdef {Truth Values-pg}{87} 'xrdef {Truth Values-snt}{Section'tie7.9} 'xrdef {Typing and Comparison-title}{Variable Typing and Comparison Expressions} 'xrdef {Typing and Comparison-pg}{88} 'xrdef {Typing and Comparison-snt}{Section'tie7.10} 'xrdef {Boolean Ops-title}{Boolean Expressions} 'xrdef {Boolean Ops-pg}{91} 'xrdef {Boolean Ops-snt}{Section'tie7.11} 'xrdef {Conditional Exp-title}{Conditional Expressions} 'xrdef {Conditional Exp-pg}{92} 'xrdef {Conditional Exp-snt}{Section'tie7.12} 'xrdef {Function Calls-title}{Function Calls} 'xrdef {Function Calls-pg}{93} 'xrdef {Function Calls-snt}{Section'tie7.13} 'xrdef {Precedence-title}{Operator Precedence (How Operators Nest)} 'xrdef {Precedence-pg}{94} 'xrdef {Precedence-snt}{Section'tie7.14} 'xrdef {Patterns and Actions-title}{Patterns and Actions} 'xrdef {Patterns and Actions-pg}{97} 'xrdef {Patterns and Actions-snt}{Chapter'tie8} 'xrdef {Pattern Overview-title}{Pattern Elements} 'xrdef {Pattern Overview-pg}{97} 'xrdef {Pattern Overview-snt}{Section'tie8.1} 'xrdef {Kinds of Patterns-title}{Kinds of Patterns} 'xrdef {Kinds of Patterns-pg}{97} 'xrdef {Kinds of Patterns-snt}{Section'tie8.1.1} 'xrdef {Regexp Patterns-title}{Regular Expressions as Patterns} 'xrdef {Regexp Patterns-pg}{97} 'xrdef {Regexp Patterns-snt}{Section'tie8.1.2} 'xrdef {Expression Patterns-title}{Expressions as Patterns} 'xrdef {Expression Patterns-pg}{98} 'xrdef {Expression Patterns-snt}{Section'tie8.1.3} 'xrdef {Ranges-title}{Specifying Record Ranges with Patterns} 'xrdef {Ranges-pg}{99} 'xrdef {Ranges-snt}{Section'tie8.1.4} 'xrdef {BEGIN/END-title}{The \code {BEGIN} and \code {END} Special Patterns} 'xrdef {BEGIN/END-pg}{100} 'xrdef {BEGIN/END-snt}{Section'tie8.1.5} 'xrdef {Using BEGIN/END-title}{Startup and Cleanup Actions} 'xrdef {Using BEGIN/END-pg}{100} 'xrdef {Using BEGIN/END-snt}{Section'tie8.1.5.1} 'xrdef {I/O And BEGIN/END-title}{Input/Output from \code {BEGIN} and \code {END} Rules} 'xrdef {I/O And BEGIN/END-pg}{102} 'xrdef {I/O And BEGIN/END-snt}{Section'tie8.1.5.2} 'xrdef {Empty-title}{The Empty Pattern} 'xrdef {Empty-pg}{102} 'xrdef {Empty-snt}{Section'tie8.1.6} 'xrdef {Action Overview-title}{Overview of Actions} 'xrdef {Action Overview-pg}{102} 'xrdef {Action Overview-snt}{Section'tie8.2} 'xrdef {Statements-title}{Control Statements in Actions} 'xrdef {Statements-pg}{105} 'xrdef {Statements-snt}{Chapter'tie9} 'xrdef {If Statement-title}{The \code {if}-\code {else} Statement} 'xrdef {If Statement-pg}{105} 'xrdef {If Statement-snt}{Section'tie9.1} 'xrdef {While Statement-title}{The \code {while} Statement} 'xrdef {While Statement-pg}{106} 'xrdef {While Statement-snt}{Section'tie9.2} 'xrdef {Do Statement-title}{The \code {do}-\code {while} Statement} 'xrdef {Do Statement-pg}{106} 'xrdef {Do Statement-snt}{Section'tie9.3} 'xrdef {For Statement-title}{The \code {for} Statement} 'xrdef {For Statement-pg}{107} 'xrdef {For Statement-snt}{Section'tie9.4} 'xrdef {Break Statement-title}{The \code {break} Statement} 'xrdef {Break Statement-pg}{109} 'xrdef {Break Statement-snt}{Section'tie9.5} 'xrdef {Continue Statement-title}{The \code {continue} Statement} 'xrdef {Continue Statement-pg}{110} 'xrdef {Continue Statement-snt}{Section'tie9.6} 'xrdef {Next Statement-title}{The \code {next} Statement} 'xrdef {Next Statement-pg}{111} 'xrdef {Next Statement-snt}{Section'tie9.7} 'xrdef {Nextfile Statement-title}{The \code {nextfile} Statement} 'xrdef {Nextfile Statement-pg}{112} 'xrdef {Nextfile Statement-snt}{Section'tie9.8} 'xrdef {Exit Statement-title}{The \code {exit} Statement} 'xrdef {Exit Statement-pg}{112} 'xrdef {Exit Statement-snt}{Section'tie9.9} 'xrdef {Built-in Variables-title}{Built-in Variables} 'xrdef {Built-in Variables-pg}{115} 'xrdef {Built-in Variables-snt}{Chapter'tie10} 'xrdef {User-modified-title}{Built-in Variables that Control \code {awk}} 'xrdef {User-modified-pg}{115} 'xrdef {User-modified-snt}{Section'tie10.1} 'xrdef {Auto-set-title}{Built-in Variables that Convey Information} 'xrdef {Auto-set-pg}{117} 'xrdef {Auto-set-snt}{Section'tie10.2} 'xrdef {ARGC and ARGV-title}{Using \code {ARGC} and \code {ARGV}} 'xrdef {ARGC and ARGV-pg}{120} 'xrdef {ARGC and ARGV-snt}{Section'tie10.3} 'xrdef {Arrays-title}{Arrays in \code {awk}} 'xrdef {Arrays-pg}{123} 'xrdef {Arrays-snt}{Chapter'tie11} 'xrdef {Array Intro-title}{Introduction to Arrays} 'xrdef {Array Intro-pg}{123} 'xrdef {Array Intro-snt}{Section'tie11.1} 'xrdef {Reference to Elements-title}{Referring to an Array Element} 'xrdef {Reference to Elements-pg}{124} 'xrdef {Reference to Elements-snt}{Section'tie11.2} 'xrdef {Assigning Elements-title}{Assigning Array Elements} 'xrdef {Assigning Elements-pg}{125} 'xrdef {Assigning Elements-snt}{Section'tie11.3} 'xrdef {Array Example-title}{Basic Array Example} 'xrdef {Array Example-pg}{125} 'xrdef {Array Example-snt}{Section'tie11.4} 'xrdef {Scanning an Array-title}{Scanning All Elements of an Array} 'xrdef {Scanning an Array-pg}{127} 'xrdef {Scanning an Array-snt}{Section'tie11.5} 'xrdef {Delete-title}{The \code {delete} Statement} 'xrdef {Delete-pg}{128} 'xrdef {Delete-snt}{Section'tie11.6} 'xrdef {Numeric Array Subscripts-title}{Using Numbers to Subscript Arrays} 'xrdef {Numeric Array Subscripts-pg}{129} 'xrdef {Numeric Array Subscripts-snt}{Section'tie11.7} 'xrdef {Uninitialized Subscripts-title}{Using Uninitialized Variables as Subscripts} 'xrdef {Uninitialized Subscripts-pg}{129} 'xrdef {Uninitialized Subscripts-snt}{Section'tie11.8} 'xrdef {Multi-dimensional-title}{Multi-dimensional Arrays} 'xrdef {Multi-dimensional-pg}{130} 'xrdef {Multi-dimensional-snt}{Section'tie11.9} 'xrdef {Multi-scanning-title}{Scanning Multi-dimensional Arrays} 'xrdef {Multi-scanning-pg}{132} 'xrdef {Multi-scanning-snt}{Section'tie11.10} 'xrdef {Built-in-title}{Built-in Functions} 'xrdef {Built-in-pg}{133} 'xrdef {Built-in-snt}{Chapter'tie12} 'xrdef {Calling Built-in-title}{Calling Built-in Functions} 'xrdef {Calling Built-in-pg}{133} 'xrdef {Calling Built-in-snt}{Section'tie12.1} 'xrdef {Numeric Functions-title}{Numeric Built-in Functions} 'xrdef {Numeric Functions-pg}{134} 'xrdef {Numeric Functions-snt}{Section'tie12.2} 'xrdef {String Functions-title}{Built-in Functions for String Manipulation} 'xrdef {String Functions-pg}{135} 'xrdef {String Functions-snt}{Section'tie12.3} 'xrdef {I/O Functions-title}{Built-in Functions for Input/Output} 'xrdef {I/O Functions-pg}{144} 'xrdef {I/O Functions-snt}{Section'tie12.4} 'xrdef {Time Functions-title}{Functions for Dealing with Time Stamps} 'xrdef {Time Functions-pg}{146} 'xrdef {Time Functions-snt}{Section'tie12.5} 'xrdef {User-defined-title}{User-defined Functions} 'xrdef {User-defined-pg}{151} 'xrdef {User-defined-snt}{Chapter'tie13} 'xrdef {Definition Syntax-title}{Function Definition Syntax} 'xrdef {Definition Syntax-pg}{151} 'xrdef {Definition Syntax-snt}{Section'tie13.1} 'xrdef {Function Example-title}{Function Definition Examples} 'xrdef {Function Example-pg}{152} 'xrdef {Function Example-snt}{Section'tie13.2} 'xrdef {Function Caveats-title}{Calling User-defined Functions} 'xrdef {Function Caveats-pg}{154} 'xrdef {Function Caveats-snt}{Section'tie13.3} 'xrdef {Return Statement-title}{The \code {return} Statement} 'xrdef {Return Statement-pg}{156} 'xrdef {Return Statement-snt}{Section'tie13.4} 'xrdef {Invoking Gawk-title}{Running \code {awk}} 'xrdef {Invoking Gawk-pg}{159} 'xrdef {Invoking Gawk-snt}{Chapter'tie14} 'xrdef {Options-title}{Command Line Options} 'xrdef {Options-pg}{159} 'xrdef {Options-snt}{Section'tie14.1} 'xrdef {Other Arguments-title}{Other Command Line Arguments} 'xrdef {Other Arguments-pg}{163} 'xrdef {Other Arguments-snt}{Section'tie14.2} 'xrdef {AWKPATH Variable-title}{The \code {AWKPATH} Environment Variable} 'xrdef {AWKPATH Variable-pg}{164} 'xrdef {AWKPATH Variable-snt}{Section'tie14.3} 'xrdef {Obsolete-title}{Obsolete Options and/or Features} 'xrdef {Obsolete-pg}{165} 'xrdef {Obsolete-snt}{Section'tie14.4} 'xrdef {Undocumented-title}{Undocumented Options and Features} 'xrdef {Undocumented-pg}{165} 'xrdef {Undocumented-snt}{Section'tie14.5} 'xrdef {Known Bugs-title}{Known Bugs in \code {gawk}} 'xrdef {Known Bugs-pg}{165} 'xrdef {Known Bugs-snt}{Section'tie14.6} 'xrdef {Library Functions-title}{A Library of \code {awk} Functions} 'xrdef {Library Functions-pg}{167} 'xrdef {Library Functions-snt}{Chapter'tie15} 'xrdef {Portability Notes-title}{Simulating \code {gawk}-specific Features} 'xrdef {Portability Notes-pg}{167} 'xrdef {Portability Notes-snt}{Section'tie15.1} 'xrdef {Nextfile Function-title}{Implementing \code {nextfile} as a Function} 'xrdef {Nextfile Function-pg}{168} 'xrdef {Nextfile Function-snt}{Section'tie15.2} 'xrdef {Assert Function-title}{Assertions} 'xrdef {Assert Function-pg}{170} 'xrdef {Assert Function-snt}{Section'tie15.3} 'xrdef {Round Function-title}{Rounding Numbers} 'xrdef {Round Function-pg}{171} 'xrdef {Round Function-snt}{Section'tie15.4} 'xrdef {Ordinal Functions-title}{Translating Between Characters and Numbers} 'xrdef {Ordinal Functions-pg}{172} 'xrdef {Ordinal Functions-snt}{Section'tie15.5} 'xrdef {Join Function-title}{Merging an Array Into a String} 'xrdef {Join Function-pg}{174} 'xrdef {Join Function-snt}{Section'tie15.6} 'xrdef {Mktime Function-title}{Turning Dates Into Timestamps} 'xrdef {Mktime Function-pg}{175} 'xrdef {Mktime Function-snt}{Section'tie15.7} 'xrdef {Gettimeofday Function-title}{Managing the Time of Day} 'xrdef {Gettimeofday Function-pg}{181} 'xrdef {Gettimeofday Function-snt}{Section'tie15.8} 'xrdef {Filetrans Function-title}{Noting Data File Boundaries} 'xrdef {Filetrans Function-pg}{183} 'xrdef {Filetrans Function-snt}{Section'tie15.9} 'xrdef {Getopt Function-title}{Processing Command Line Options} 'xrdef {Getopt Function-pg}{184} 'xrdef {Getopt Function-snt}{Section'tie15.10} 'xrdef {Passwd Functions-title}{Reading the User Database} 'xrdef {Passwd Functions-pg}{190} 'xrdef {Passwd Functions-snt}{Section'tie15.11} 'xrdef {Group Functions-title}{Reading the Group Database} 'xrdef {Group Functions-pg}{195} 'xrdef {Group Functions-snt}{Section'tie15.12} 'xrdef {Library Names-title}{Naming Library Function Global Variables} 'xrdef {Library Names-pg}{200} 'xrdef {Library Names-snt}{Section'tie15.13} 'xrdef {Sample Programs-title}{Practical \code {awk} Programs} 'xrdef {Sample Programs-pg}{203} 'xrdef {Sample Programs-snt}{Chapter'tie16} 'xrdef {Clones-title}{Re-inventing Wheels for Fun and Profit} 'xrdef {Clones-pg}{203} 'xrdef {Clones-snt}{Section'tie16.1} 'xrdef {Cut Program-title}{Cutting Out Fields and Columns} 'xrdef {Cut Program-pg}{203} 'xrdef {Cut Program-snt}{Section'tie16.1.1} 'xrdef {Egrep Program-title}{Searching for Regular Expressions in Files} 'xrdef {Egrep Program-pg}{208} 'xrdef {Egrep Program-snt}{Section'tie16.1.2} 'xrdef {Id Program-title}{Printing Out User Information} 'xrdef {Id Program-pg}{213} 'xrdef {Id Program-snt}{Section'tie16.1.3} 'xrdef {Split Program-title}{Splitting a Large File Into Pieces} 'xrdef {Split Program-pg}{215} 'xrdef {Split Program-snt}{Section'tie16.1.4} 'xrdef {Tee Program-title}{Duplicating Output Into Multiple Files} 'xrdef {Tee Program-pg}{217} 'xrdef {Tee Program-snt}{Section'tie16.1.5} 'xrdef {Uniq Program-title}{Printing Non-duplicated Lines of Text} 'xrdef {Uniq Program-pg}{218} 'xrdef {Uniq Program-snt}{Section'tie16.1.6} 'xrdef {Wc Program-title}{Counting Things} 'xrdef {Wc Program-pg}{223} 'xrdef {Wc Program-snt}{Section'tie16.1.7} 'xrdef {Miscellaneous Programs-title}{A Grab Bag of \code {awk} Programs} 'xrdef {Miscellaneous Programs-pg}{225} 'xrdef {Miscellaneous Programs-snt}{Section'tie16.2} 'xrdef {Dupword Program-title}{Finding Duplicated Words in a Document} 'xrdef {Dupword Program-pg}{226} 'xrdef {Dupword Program-snt}{Section'tie16.2.1} 'xrdef {Alarm Program-title}{An Alarm Clock Program} 'xrdef {Alarm Program-pg}{226} 'xrdef {Alarm Program-snt}{Section'tie16.2.2} 'xrdef {Translate Program-title}{Transliterating Characters} 'xrdef {Translate Program-pg}{229} 'xrdef {Translate Program-snt}{Section'tie16.2.3} 'xrdef {Labels Program-title}{Printing Mailing Labels} 'xrdef {Labels Program-pg}{231} 'xrdef {Labels Program-snt}{Section'tie16.2.4} 'xrdef {Word Sorting-title}{Generating Word Usage Counts} 'xrdef {Word Sorting-pg}{233} 'xrdef {Word Sorting-snt}{Section'tie16.2.5} 'xrdef {History Sorting-title}{Removing Duplicates from Unsorted Text} 'xrdef {History Sorting-pg}{236} 'xrdef {History Sorting-snt}{Section'tie16.2.6} 'xrdef {Extract Program-title}{Extracting Programs from Texinfo Source Files} 'xrdef {Extract Program-pg}{236} 'xrdef {Extract Program-snt}{Section'tie16.2.7} 'xrdef {Simple Sed-title}{A Simple Stream Editor} 'xrdef {Simple Sed-pg}{240} 'xrdef {Simple Sed-snt}{Section'tie16.2.8} 'xrdef {Igawk Program-title}{An Easy Way to Use Library Functions} 'xrdef {Igawk Program-pg}{242} 'xrdef {Igawk Program-snt}{Section'tie16.2.9} 'xrdef {Language History-title}{The Evolution of the \code {awk} Language} 'xrdef {Language History-pg}{251} 'xrdef {Language History-snt}{Chapter'tie17} 'xrdef {V7/SVR3.1-title}{Major Changes between V7 and SVR3.1} 'xrdef {V7/SVR3.1-pg}{251} 'xrdef {V7/SVR3.1-snt}{Section'tie17.1} 'xrdef {SVR4-title}{Changes between SVR3.1 and SVR4} 'xrdef {SVR4-pg}{252} 'xrdef {SVR4-snt}{Section'tie17.2} 'xrdef {POSIX-title}{Changes between SVR4 and POSIX \code {awk}} 'xrdef {POSIX-pg}{253} 'xrdef {POSIX-snt}{Section'tie17.3} 'xrdef {BTL-title}{Extensions in the Bell Laboratories \code {awk}} 'xrdef {BTL-pg}{253} 'xrdef {BTL-snt}{Section'tie17.4} 'xrdef {POSIX/GNU-title}{Extensions in \code {gawk} Not in POSIX \code {awk}} 'xrdef {POSIX/GNU-pg}{254} 'xrdef {POSIX/GNU-snt}{Section'tie17.5} 'xrdef {Gawk Summary-title}{\code {gawk} Summary} 'xrdef {Gawk Summary-pg}{257} 'xrdef {Gawk Summary-snt}{Appendix'tie'char65{}} 'xrdef {Command Line Summary-title}{Command Line Options Summary} 'xrdef {Command Line Summary-pg}{257} 'xrdef {Command Line Summary-snt}{Section'tie'char65.1} 'xrdef {Language Summary-title}{Language Summary} 'xrdef {Language Summary-pg}{259} 'xrdef {Language Summary-snt}{Section'tie'char65.2} 'xrdef {Variables/Fields-title}{Variables and Fields} 'xrdef {Variables/Fields-pg}{259} 'xrdef {Variables/Fields-snt}{Section'tie'char65.3} 'xrdef {Fields Summary-title}{Fields} 'xrdef {Fields Summary-pg}{260} 'xrdef {Fields Summary-snt}{Section'tie'char65.3.1} 'xrdef {Built-in Summary-title}{Built-in Variables} 'xrdef {Built-in Summary-pg}{260} 'xrdef {Built-in Summary-snt}{Section'tie'char65.3.2} 'xrdef {Arrays Summary-title}{Arrays} 'xrdef {Arrays Summary-pg}{262} 'xrdef {Arrays Summary-snt}{Section'tie'char65.3.3} 'xrdef {Data Type Summary-title}{Data Types} 'xrdef {Data Type Summary-pg}{262} 'xrdef {Data Type Summary-snt}{Section'tie'char65.3.4} 'xrdef {Rules Summary-title}{Patterns} 'xrdef {Rules Summary-pg}{263} 'xrdef {Rules Summary-snt}{Section'tie'char65.4} 'xrdef {Pattern Summary-title}{Pattern Summary} 'xrdef {Pattern Summary-pg}{264} 'xrdef {Pattern Summary-snt}{Section'tie'char65.4.1} 'xrdef {Regexp Summary-title}{Regular Expressions} 'xrdef {Regexp Summary-pg}{265} 'xrdef {Regexp Summary-snt}{Section'tie'char65.4.2} 'xrdef {Actions Summary-title}{Actions} 'xrdef {Actions Summary-pg}{266} 'xrdef {Actions Summary-snt}{Section'tie'char65.5} 'xrdef {Operator Summary-title}{Operators} 'xrdef {Operator Summary-pg}{267} 'xrdef {Operator Summary-snt}{Section'tie'char65.5.1} 'xrdef {Control Flow Summary-title}{Control Statements} 'xrdef {Control Flow Summary-pg}{268} 'xrdef {Control Flow Summary-snt}{Section'tie'char65.5.2} 'xrdef {I/O Summary-title}{I/O Statements} 'xrdef {I/O Summary-pg}{268} 'xrdef {I/O Summary-snt}{Section'tie'char65.5.3} 'xrdef {Printf Summary-title}{\code {printf} Summary} 'xrdef {Printf Summary-pg}{269} 'xrdef {Printf Summary-snt}{Section'tie'char65.5.4} 'xrdef {Special File Summary-title}{Special File Names} 'xrdef {Special File Summary-pg}{271} 'xrdef {Special File Summary-snt}{Section'tie'char65.5.5} 'xrdef {Built-in Functions Summary-title}{Built-in Functions} 'xrdef {Built-in Functions Summary-pg}{272} 'xrdef {Built-in Functions Summary-snt}{Section'tie'char65.5.6} 'xrdef {Time Functions Summary-title}{Time Functions} 'xrdef {Time Functions Summary-pg}{274} 'xrdef {Time Functions Summary-snt}{Section'tie'char65.5.7} 'xrdef {String Constants Summary-title}{String Constants} 'xrdef {String Constants Summary-pg}{274} 'xrdef {String Constants Summary-snt}{Section'tie'char65.5.8} 'xrdef {Functions Summary-title}{User-defined Functions} 'xrdef {Functions Summary-pg}{275} 'xrdef {Functions Summary-snt}{Section'tie'char65.6} 'xrdef {Historical Features-title}{Historical Features} 'xrdef {Historical Features-pg}{275} 'xrdef {Historical Features-snt}{Section'tie'char65.7} 'xrdef {Installation-title}{Installing \code {gawk}} 'xrdef {Installation-pg}{277} 'xrdef {Installation-snt}{Appendix'tie'char66{}} 'xrdef {Gawk Distribution-title}{The \code {gawk} Distribution} 'xrdef {Gawk Distribution-pg}{277} 'xrdef {Gawk Distribution-snt}{Section'tie'char66.1} 'xrdef {Getting-title}{Getting the \code {gawk} Distribution} 'xrdef {Getting-pg}{277} 'xrdef {Getting-snt}{Section'tie'char66.1.1} 'xrdef {Extracting-title}{Extracting the Distribution} 'xrdef {Extracting-pg}{279} 'xrdef {Extracting-snt}{Section'tie'char66.1.2} 'xrdef {Distribution contents-title}{Contents of the \code {gawk} Distribution} 'xrdef {Distribution contents-pg}{279} 'xrdef {Distribution contents-snt}{Section'tie'char66.1.3} 'xrdef {Unix Installation-title}{Compiling and Installing \code {gawk} on Unix} 'xrdef {Unix Installation-pg}{282} 'xrdef {Unix Installation-snt}{Section'tie'char66.2} 'xrdef {Quick Installation-title}{Compiling \code {gawk} for Unix} 'xrdef {Quick Installation-pg}{282} 'xrdef {Quick Installation-snt}{Section'tie'char66.2.1} 'xrdef {Configuration Philosophy-title}{The Configuration Process} 'xrdef {Configuration Philosophy-pg}{283} 'xrdef {Configuration Philosophy-snt}{Section'tie'char66.2.2} 'xrdef {VMS Installation-title}{How to Compile and Install \code {gawk} on VMS} 'xrdef {VMS Installation-pg}{283} 'xrdef {VMS Installation-snt}{Section'tie'char66.3} 'xrdef {VMS Compilation-title}{Compiling \code {gawk} on VMS} 'xrdef {VMS Compilation-pg}{283} 'xrdef {VMS Compilation-snt}{Section'tie'char66.3.1} 'xrdef {VMS Installation Details-title}{Installing \code {gawk} on VMS} 'xrdef {VMS Installation Details-pg}{284} 'xrdef {VMS Installation Details-snt}{Section'tie'char66.3.2} 'xrdef {VMS Running-title}{Running \code {gawk} on VMS} 'xrdef {VMS Running-pg}{285} 'xrdef {VMS Running-snt}{Section'tie'char66.3.3} 'xrdef {VMS POSIX-title}{Building and Using \code {gawk} on VMS POSIX} 'xrdef {VMS POSIX-pg}{285} 'xrdef {VMS POSIX-snt}{Section'tie'char66.3.4} 'xrdef {PC Installation-title}{MS-DOS and OS/2 Installation and Compilation} 'xrdef {PC Installation-pg}{286} 'xrdef {PC Installation-snt}{Section'tie'char66.4} 'xrdef {Atari Installation-title}{Installing \code {gawk} on the Atari ST} 'xrdef {Atari Installation-pg}{287} 'xrdef {Atari Installation-snt}{Section'tie'char66.5} 'xrdef {Atari Compiling-title}{Compiling \code {gawk} on the Atari ST} 'xrdef {Atari Compiling-pg}{287} 'xrdef {Atari Compiling-snt}{Section'tie'char66.5.1} 'xrdef {Atari Using-title}{Running \code {gawk} on the Atari ST} 'xrdef {Atari Using-pg}{288} 'xrdef {Atari Using-snt}{Section'tie'char66.5.2} 'xrdef {Amiga Installation-title}{Installing \code {gawk} on an Amiga} 'xrdef {Amiga Installation-pg}{289} 'xrdef {Amiga Installation-snt}{Section'tie'char66.6} 'xrdef {Bugs-title}{Reporting Problems and Bugs} 'xrdef {Bugs-pg}{290} 'xrdef {Bugs-snt}{Section'tie'char66.7} 'xrdef {Other Versions-title}{Other Freely Available \code {awk} Implementations} 'xrdef {Other Versions-pg}{291} 'xrdef {Other Versions-snt}{Section'tie'char66.8} 'xrdef {Notes-title}{Implementation Notes} 'xrdef {Notes-pg}{293} 'xrdef {Notes-snt}{Appendix'tie'char67{}} 'xrdef {Compatibility Mode-title}{Downward Compatibility and Debugging} 'xrdef {Compatibility Mode-pg}{293} 'xrdef {Compatibility Mode-snt}{Section'tie'char67.1} 'xrdef {Additions-title}{Making Additions to \code {gawk}} 'xrdef {Additions-pg}{293} 'xrdef {Additions-snt}{Section'tie'char67.2} 'xrdef {Adding Code-title}{Adding New Features} 'xrdef {Adding Code-pg}{293} 'xrdef {Adding Code-snt}{Section'tie'char67.2.1} 'xrdef {New Ports-title}{Porting \code {gawk} to a New Operating System} 'xrdef {New Ports-pg}{295} 'xrdef {New Ports-snt}{Section'tie'char67.2.2} 'xrdef {Future Extensions-title}{Probable Future Extensions} 'xrdef {Future Extensions-pg}{297} 'xrdef {Future Extensions-snt}{Section'tie'char67.3} 'xrdef {Improvements-title}{Suggestions for Improvements} 'xrdef {Improvements-pg}{298} 'xrdef {Improvements-snt}{Section'tie'char67.4} 'xrdef {Glossary-title}{Glossary} 'xrdef {Glossary-pg}{299} 'xrdef {Glossary-snt}{Appendix'tie'char68{}} 'xrdef {Copying-title}{GNU GENERAL PUBLIC LICENSE} 'xrdef {Copying-pg}{307} 'xrdef {Copying-snt}{} 'xrdef {Index-title}{Index} 'xrdef {Index-pg}{315} 'xrdef {Index-snt}{}