http://www.usf.uos.de/infoservice/doc/

(gawk.info)Top


Next: Preface Prev: (dir) Up: (dir)
Enter node , (file) or (file)node

General Introduction
********************

   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.3 of `Effective AWK Programming',
for the 3.0.3 version of the GNU implementation
of AWK.


* Preface
What this Info file is about; brief history and acknowledgements.
* What Is Awk
What is the `awk' language; using this Info file.
* Getting Started
A basic introduction to using `awk'. How to run an `awk' program. Command line syntax.
* One-liners
Short, sample `awk' programs.
* Regexp
All about matching things using regular expressions.
* 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 statements.
* Patterns and Actions
Overviews of patterns and actions.
* Statements
The various control statements are described in detail.
* 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 detail.
* Invoking Gawk
How to run `gawk'.
* Library Functions
A Library of `awk' Functions.
* Sample Programs
Many `awk' programs with complete explanations.
* Language History
The evolution of the `awk' language.
* Gawk Summary
`gawk' Options and Language Summary.
* Installation
Installing `gawk' under various operating systems.
* Notes
Something about the implementation of `gawk'.
* 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 Info file.
* 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 instead).
* Long
Putting permanent `awk' programs in files.
* 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 lines.
* Other Features
Other Features of `awk'.
* When
When to use `gawk' and when to use other things.
* 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 simple strings.
* 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 file.
* Getline/Pipe
Using `getline' from a pipe.
* Getline/Variable/Pipe
Using `getline' into a variable from a pipe.
* 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 pipes.
* Special Files
File name interpretation in `gawk'. `gawk' allows access to inherited file descriptors.
* 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 versa.
* Arithmetic Ops
Arithmetic operations (`+', `-', etc.)
* 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 `<', etc.
* 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 subexpression.
* 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' statements.
* 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 loop.
* 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 `awk'.
* Auto-set
Built-in variables where `awk' gives you information.
* 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 existing elements.
* Delete
The `delete' statement removes an element from an array.
* Numeric Array Subscripts
How to use numbers as subscripts in `awk'.
* Uninitialized Subscripts
Using Uninitialized variables as subscripts.
* Multi-dimensional
Emulating multi-dimensional arrays in `awk'.
* 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 `sprintf'.
* 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 does.
* 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' function.
* Assert Function
A function for assertions in `awk' programs.
* Round Function
A function for rounding if `sprintf' does not do it correctly.
* Ordinal Functions
Functions for using characters as numbers and vice versa.
* 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 arguments.
* Passwd Functions
Functions for getting user information.
* Group Functions
Functions for getting group information.
* Library Names
How to best name private global variables in library functions.
* 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 file.
* Extract Program
Pulling out programs from Texinfo source files.
* 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 Release 3.1.
* SVR4
Minor changes between System V Releases 3.1 and 4.
* 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 `awk'.
* 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 parts.
* 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 of Unix.
* 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 and OS/2
* 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' implementations.
* 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.

Next: Preface Prev: (dir) Up: (dir)
[ Dokumentation lokal installierter Software ]