The awk command-line utility processes text input one line at a time. The basic syntax for an awk command is:
awk 'pattern {action}' <input-file>
We'll try it with some sample data:
$ cat data.txt John Doe Engineer Dave Smith Teacher Jane Doe Plumber Barney Smith Politician
The simplest action is to print each line:
$ awk '{print}' data.txt
John Doe Engineer
Dave Smith Teacher
Jane Doe Plumber
Barney Smith Politician
Awk breaks each line into whitespace-separated fields, numbered $1, $2, $3, etc.
$ awk '{print $1, $2}' data.txt
John Doe
Dave Smith
Jane Doe
Barney Smith
The $0 variable contains the full line:
$ awk '{print $0}' data.txt
John Doe Engineer
Dave Smith Teacher
Jane Doe Plumber
Barney Smith Politician
The NR variable contains the current line number:
$ awk '{print NR ":", $1, $2}' data.txt
1: John Doe
2: Dave Smith
3: Jane Doe
4: Barney Smith
Specify a regex to print only matching lines:
$ awk '/Smith/ {print $1, $2}' data.txt
Dave Smith
Barney Smith