This file documents `awk', a program that you can use to select
particular records in a file and perform operations upon them.
This is Edition 1.0.6 of `Effective AWK Programming',
for the 3.0.6 version of the GNU implementation
* Preface What this Info file is about; brief
history and acknowledgements.
* What Is Awk What is the `awk' language; using this
* Getting Started A basic introduction to using `awk'. How
to run an `awk' program. Command line
* One-liners Short, sample `awk' programs.
* Regexp All about matching things using regular
* Reading Files How to read files and manipulate fields.
* Printing How to print using `awk'. Describes the
`print' and `printf' statements.
Also describes redirection of output.
* Expressions Expressions are the basic building blocks of
* Patterns and Actions Overviews of patterns and actions.
* Statements The various control statements are described
* Built-in Variables Built-in Variables
* Arrays The description and use of arrays. Also
includes array-oriented control statements.
* Built-in The built-in functions are summarized here.
* User-defined User-defined functions are described in
* Invoking Gawk How to run `gawk'.
* Library Functions A Library of `awk' Functions.
* Sample Programs Many `awk' programs with complete
* Language History The evolution of the `awk' language.
* Gawk Summary `gawk' Options and Language Summary.
* Installation Installing `gawk' under various operating
* Notes Something about the implementation of
* Glossary An explanation of some unfamiliar terms.
* Copying Your right to copy and distribute `gawk'.
* Index Concept and Variable Index.
* History The history of `gawk' and `awk'.
* Manual History Brief history of the GNU project and this
* Acknowledgements Acknowledgements.
* This Manual Using this Info file. Includes sample
input files that you can use.
* Conventions Typographical Conventions.
* Sample Data Files Sample data files for use in the `awk'
programs illustrated in this Info file.
* Names What name to use to find `awk'.
* Running gawk How to run `gawk' programs; includes
command line syntax.
* One-shot Running a short throw-away `awk' program.
* Read Terminal Using no input files (input from terminal
* Long Putting permanent `awk' programs in
* Executable Scripts Making self-contained `awk' programs.
* Comments Adding documentation to `gawk' programs.
* Very Simple A very simple example.
* Two Rules A less simple one-line example with two rules.
* More Complex A more complex example.
* Statements/Lines Subdividing or combining statements into
* Other Features Other Features of `awk'.
* When When to use `gawk' and when to use other
* Regexp Usage How to Use Regular Expressions.
* Escape Sequences How to write non-printing characters.
* Regexp Operators Regular Expression Operators.
* GNU Regexp Operators Operators specific to GNU software.
* Case-sensitivity How to do case-insensitive matching.
* Leftmost Longest How much text matches.
* Computed Regexps Using Dynamic Regexps.
* Records Controlling how data is split into records.
* Fields An introduction to fields.
* Non-Constant Fields Non-constant Field Numbers.
* Changing Fields Changing the Contents of a Field.
* Field Separators The field separator and how to change it.
* Basic Field Splitting How fields are split with single characters or
* Regexp Field Splitting Using regexps as the field separator.
* Single Character Fields Making each character a separate field.
* Command Line Field Separator Setting `FS' from the command line.
* Field Splitting Summary Some final points and a summary table.
* Constant Size Reading constant width data.
* Multiple Line Reading multi-line records.
* Getline Reading files under explicit program control
using the `getline' function.
* Getline Intro Introduction to the `getline' function.
* Plain Getline Using `getline' with no arguments.
* Getline/Variable Using `getline' into a variable.
* Getline/File Using `getline' from a file.
* Getline/Variable/File Using `getline' into a variable from a
* Getline/Pipe Using `getline' from a pipe.
* Getline/Variable/Pipe Using `getline' into a variable from a
* Getline Summary Summary Of `getline' Variants.
* Print The `print' statement.
* Print Examples Simple examples of `print' statements.
* Output Separators The output separators and how to change them.
* OFMT Controlling Numeric Output With `print'.
* Printf The `printf' statement.
* Basic Printf Syntax of the `printf' statement.
* Control Letters Format-control letters.
* Format Modifiers Format-specification modifiers.
* Printf Examples Several examples.
* Redirection How to redirect output to multiple files and
* Special Files File name interpretation in `gawk'.
`gawk' allows access to inherited file
* Close Files And Pipes Closing Input and Output Files and Pipes.
* Constants String, numeric, and regexp constants.
* Scalar Constants Numeric and string constants.
* Regexp Constants Regular Expression constants.
* Using Constant Regexps When and how to use a regexp constant.
* Variables Variables give names to values for later use.
* Using Variables Using variables in your programs.
* Assignment Options Setting variables on the command line and a
summary of command line syntax. This is an
advanced method of input.
* Conversion The conversion of strings to numbers and vice
* Arithmetic Ops Arithmetic operations (`+', `-',
* Concatenation Concatenating strings.
* Assignment Ops Changing the value of a variable or a field.
* Increment Ops Incrementing the numeric value of a variable.
* Truth Values What is ``true'' and what is ``false''.
* Typing and Comparison How variables acquire types, and how this
affects comparison of numbers and strings with
* Boolean Ops Combining comparison expressions using boolean
operators `||' (``or''), `&&'
(``and'') and `!' (``not'').
* Conditional Exp Conditional expressions select between two
subexpressions under control of a third
* Function Calls A function call is an expression.
* Precedence How various operators nest.
* Pattern Overview What goes into a pattern.
* Kinds of Patterns A list of all kinds of patterns.
* Regexp Patterns Using regexps as patterns.
* Expression Patterns Any expression can be used as a pattern.
* Ranges Pairs of patterns specify record ranges.
* BEGIN/END Specifying initialization and cleanup rules.
* Using BEGIN/END How and why to use BEGIN/END rules.
* I/O And BEGIN/END I/O issues in BEGIN/END rules.
* Empty The empty pattern, which matches every record.
* Action Overview What goes into an action.
* If Statement Conditionally execute some `awk'
* While Statement Loop until some condition is satisfied.
* Do Statement Do specified action while looping until some
condition is satisfied.
* For Statement Another looping statement, that provides
initialization and increment clauses.
* Break Statement Immediately exit the innermost enclosing loop.
* Continue Statement Skip to the end of the innermost enclosing
* Next Statement Stop processing the current input record.
* Nextfile Statement Stop processing the current file.
* Exit Statement Stop execution of `awk'.
* User-modified Built-in variables that you change to control
* Auto-set Built-in variables where `awk' gives you
* ARGC and ARGV Ways to use `ARGC' and `ARGV'.
* Array Intro Introduction to Arrays
* Reference to Elements How to examine one element of an array.
* Assigning Elements How to change an element of an array.
* Array Example Basic Example of an Array
* Scanning an Array A variation of the `for' statement. It
loops through the indices of an array's
* Delete The `delete' statement removes an element
from an array.
* Numeric Array Subscripts How to use numbers as subscripts in
* Uninitialized Subscripts Using Uninitialized variables as subscripts.
* Multi-dimensional Emulating multi-dimensional arrays in
* Multi-scanning Scanning multi-dimensional arrays.
* Calling Built-in How to call built-in functions.
* Numeric Functions Functions that work with numbers, including
`int', `sin' and `rand'.
* String Functions Functions for string manipulation, such as
`split', `match', and
* I/O Functions Functions for files and shell commands.
* Time Functions Functions for dealing with time stamps.
* Definition Syntax How to write definitions and what they mean.
* Function Example An example function definition and what it
* Function Caveats Things to watch out for.
* Return Statement Specifying the value a function returns.
* Options Command line options and their meanings.
* Other Arguments Input file names and variable assignments.
* AWKPATH Variable Searching directories for `awk' programs.
* Obsolete Obsolete Options and/or features.
* Undocumented Undocumented Options and Features.
* Known Bugs Known Bugs in `gawk'.
* Portability Notes What to do if you don't have `gawk'.
* Nextfile Function Two implementations of a `nextfile'
* Assert Function A function for assertions in `awk'
* Round Function A function for rounding if `sprintf' does
not do it correctly.
* Ordinal Functions Functions for using characters as numbers and
* Join Function A function to join an array into a string.
* Mktime Function A function to turn a date into a timestamp.
* Gettimeofday Function A function to get formatted times.
* Filetrans Function A function for handling data file transitions.
* Getopt Function A function for processing command line
* Passwd Functions Functions for getting user information.
* Group Functions Functions for getting group information.
* Library Names How to best name private global variables in
* Clones Clones of common utilities.
* Cut Program The `cut' utility.
* Egrep Program The `egrep' utility.
* Id Program The `id' utility.
* Split Program The `split' utility.
* Tee Program The `tee' utility.
* Uniq Program The `uniq' utility.
* Wc Program The `wc' utility.
* Miscellaneous Programs Some interesting `awk' programs.
* Dupword Program Finding duplicated words in a document.
* Alarm Program An alarm clock.
* Translate Program A program similar to the `tr' utility.
* Labels Program Printing mailing labels.
* Word Sorting A program to produce a word usage count.
* History Sorting Eliminating duplicate entries from a history
* Extract Program Pulling out programs from Texinfo source
* Simple Sed A Simple Stream Editor.
* Igawk Program A wrapper for `awk' that includes files.
* V7/SVR3.1 The major changes between V7 and System V
* SVR4 Minor changes between System V Releases 3.1
* POSIX New features from the POSIX standard.
* BTL New features from the Bell Laboratories
version of `awk'.
* POSIX/GNU The extensions in `gawk' not in POSIX
* Command Line Summary Recapitulation of the command line.
* Language Summary A terse review of the language.
* Variables/Fields Variables, fields, and arrays.
* Fields Summary Input field splitting.
* Built-in Summary `awk''s built-in variables.
* Arrays Summary Using arrays.
* Data Type Summary Values in `awk' are numbers or strings.
* Rules Summary Patterns and Actions, and their component
* Pattern Summary Quick overview of patterns.
* Regexp Summary Quick overview of regular expressions.
* Actions Summary Quick overview of actions.
* Operator Summary `awk' operators.
* Control Flow Summary The control statements.
* I/O Summary The I/O statements.
* Printf Summary A summary of `printf'.
* Special File Summary Special file names interpreted internally.
* Built-in Functions Summary Built-in numeric and string functions.
* Time Functions Summary Built-in time functions.
* String Constants Summary Escape sequences in strings.
* Functions Summary Defining and calling functions.
* Historical Features Some undocumented but supported ``features''.
* Gawk Distribution What is in the `gawk' distribution.
* Getting How to get the distribution.
* Extracting How to extract the distribution.
* Distribution contents What is in the distribution.
* Unix Installation Installing `gawk' under various versions
* Quick Installation Compiling `gawk' under Unix.
* Configuration Philosophy How it's all supposed to work.
* VMS Installation Installing `gawk' on VMS.
* VMS Compilation How to compile `gawk' under VMS.
* VMS Installation Details How to install `gawk' under VMS.
* VMS Running How to run `gawk' under VMS.
* VMS POSIX Alternate instructions for VMS POSIX.
* PC Installation Installing and Compiling `gawk' on MS-DOS
* Atari Installation Installing `gawk' on the Atari ST.
* Atari Compiling Compiling `gawk' on Atari
* Atari Using Running `gawk' on Atari
* Amiga Installation Installing `gawk' on an Amiga.
* Bugs Reporting Problems and Bugs.
* Other Versions Other freely available `awk'
* Compatibility Mode How to disable certain `gawk' extensions.
* Additions Making Additions To `gawk'.
* Adding Code Adding code to the main body of `gawk'.
* New Ports Porting `gawk' to a new operating system.
* Future Extensions New features that may be implemented one day.
* Improvements Suggestions for improvements by volunteers.
To Miriam, for making me complete.
To Chana, for the joy you bring us.
To Rivka, for the exponential increase.
To Nachum, for the added dimension.
To Malka, for the new beginning.
automatically generated byinfo2html