Input from commands

We can use the output of any other Linux command as an input to the awk program. We need to use the pipe to send an output of another command as the input to the awk program.

The syntax is as follows:

    $ command | awk 'pattern'
    $ command | awk '{action}'
    $ command | awk 'pattern {action}'
  

Here is an example:

    $ cat people.txt | awk '$3 > 6500'
  

The output is as follows:

    Bill Thomas  8000  08/9/1968
    Tom Walker   7000  14/1/1977
  

This prints all lines where field 3 is greater than 6500.

Here is an example:

    $ cat people.txt | awk '/1972$/{print $1, $2}'
  

The output is as follows:

    Marie Jones
  

This prints fields 1 and 2 of the lines that ends with the 1972 pattern:

    $ cat people.txt | awk '$3 > 6500 {print $1, $2}'
  

This prints ...

Get Learning Linux Shell Scripting - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.