Table of Contents

AWK - AWK Fields

Assuming a file exists with the following contents:

10   Peter     Terence   Roux        45
11   Virginia  Genevieve  Roux        45
12   Felix     Devon     Roux         5
13   David     Bruce     Stevenson   48
14   Bob       James     Smith       16
48   Adam      Winter    Ridley      23

Understanding Fields

awk '{print $1,$2,$3,$4,$5}' test.txt

returns:

10 Peter Terence Roux 45
11 Virginia Genevieve Roux 45
12 Felix Devon Roux 5
13 David Bruce Stevenson 48
14 Bob James Smith 16
48 Adam Winter Ridley 23

NOTE: AWK has read each field in the file into the variables $1, $2, $3, etc.

  • Each field is split by a field separator, which by default is a space or comma.
    • As can be seen, it does not matter how many spaces separate each field in the input file.
  • As AWK reads the input, the entire record is assigned to the variable $0.

Display Only Certain Fields

To only print the name and surname, i.e. fields $2 and $4:

awk '{print $2,$4}' test.txt

returns:

Peter Roux
Virginia Roux
Felix Roux
David Stevenson
Bob Smith
Adam Ridley

The ability to address each field with a unique number allows only specific fields to be output.

NOTE : Fields can be printed out in any order. For example:

awk '{print $4,$2}' test.txt

returns:

Roux Peter
Roux Virginia
Roux Felix
Stevenson David
Smith Bob
Ridley Adam

Notice that the surname is now printed before first name.


Display Multi-line Output

To output onto multiple lines:

awk '{print $2,$3,$4; print $1, $5}' test.txt

returns:

Peter Terence Roux
10 45
Virginia Genevieve Roux
11 45
Felix Devon Roux
12 5
David Bruce Stevenson
13 48
Bob James Smith
14 16
Adam Winter Ridley
48 23

NOTE: The semicolon (;) indicates to write some data to a different line.

This could also be written as the following, which will produce the same results:

awk '{print $2,$3,$4} {print $1, $5}' test.txt

WARNING: Although both uses of code produce the same result here, be warned that they can produce different results when used with more advanced AWK options.