AWK Programming

Course Description

The objective of this course is to develop the advanced skills required to write applications using the awk programming language.
3 days
Contact us for pricing


The ability to write programs in a high level language (such as C or shell) is very helpful in completing the lab exercises and understanding the lectures. A good working knowledge of the UNIX environment is necessary.

Getting Started with awk

How to Run awk Programs
Datafiles for the Examples
Some Simple Examples
An Example with Two Rules
A More Complex Example
awk Statements Versus Lines
Other Features of awk
When to Use awk

Regular Expressions

How to Use Regular Expressions
Escape Sequences
Regular Expression Operators
Using Character Lists
gawk-Specific Regexp Operators
Case Sensitivity in Matching
How Much Text Matches?
Using Dynamic Regexps

Reading Input Files

How Input Is Split into Records
Examining Fields
Non-constant Field Numbers
Changing the Contents of a Field
Specifying How Fields Are Separated
Reading Fixed-Width Data
Multiple-Line Records
Explicit Input with getline

Printing Output

The print Statement
Examples of print Statements
Output Separators
Controlling Numeric Output with print
Using printf Statements for Fancier Printing
Redirecting Output of print and printf
Special Filenames in gawk
Closing Input and Output Redirections


Constant Expressions
Using Regular Expression Constants
Conversion of Strings and Numbers
Arithmetic Operators
String Concatenation
Assignment Expressions
Increment and Decrement Operators
True and False in awk
Variable Typing and Comparison Expressions
Boolean Expressions
Conditional Expressions
Function Calls
Operator Precedence (How Operators Nest)

Patterns, Actions, and Variables

Pattern Elements
Using Shell Variables in Programs
Control Statements in Actions
Built-in Variables

Arrays in awk

Introduction to Arrays
Referring to an Array Element
Assigning Array Elements
Basic Array Example
Scanning All Elements of an Array
The delete Statement
Using Numbers to Subscript Arrays
Using Uninitialized Variables as Subscripts
Multidimensional Arrays
Scanning Multidimensional Arrays
Sorting Array Values and Indices with gawk


Built-in Functions
User-Defined Functions

Internationalization with gawk

Internationalization and Localization
GNU gettext
Internationalizing awk Programs
Translating awk Programs
A Simple Internationalization Example
gawk Can Speak Your Language

Advanced Features of gawk

Allowing Nondecimal Input Data
Two-Way Communications with Another Process
Using gawk for Network Programming
Using gawk with BSD Portals
Profiling Your awk Programs

Running awk and gawk

Invoking awk
Command-Line Options
Other Command-Line Arguments
The AWKPATH Environment Variable
Obsolete Options and/or Features
Known Bugs in gawk

A Library of awk Functions

Naming Library Function Global Variables
General Programming
Datafile Management
Processing Command-Line Options
Reading the User Database
Reading the Group Database

Practical awk Programs

Running the Example Programs
Reinventing Wheels for Fun and Profit
A Grab Bag of awk Programs

Internetworking with gawk

Networking with gawk
Some Applications and Techniques
Related Links

AWKUnixAWK Programming