Linux /awk/ Usage


Linux <i>awk</i> Usage

Linux awk Usage

Table of Contents

  • 1. Sum a specific column:
  • 2. Sum the columns of the lines with additional conditions(starting with 7):
  • 3. Output the line whose value in the 3rd column is 1:
  • 4. Output the line whose $1 < 80 and $2 > 20:
  • 5. Count the lines starting with 7:
  • 6. Output the line containg number 765
  • 7. Output the line containing number 765 with the line number in front of that line:
  • 8. Output the lines not containing number 765:

In this post, I am going to record the common patterns of using awk, the amazing tool for processing file.
Assume I have a file (bb) with the following contents:
70 23 2 757 35 3 765 56 3 765 56 1 23 4 11 3

1 Sum a specific column:

awk '{sum += $1} END {print sum}' bb

2 Sum the columns of the lines with additional conditions(starting with 7):

1: awk '/^7/ {print $2}' bb | awk '{sum += $1} END {print sum}'

3 Output the line whose value in the 3rd column is 1:

1: awk '$3 == 1' bb

4 Output the line whose $1 < 80 and $2 > 20:

1: awk '{$1<80 && $2>20;print $3}' bb

5 Count the lines starting with 7:

1: awk '/^7/ {x++;} END {print x}' bb

6 Output the line containg number 765

1: awk '/765/' bb

7 Output the line containing number 765 with the line number in front of that line:

1: awk '/765/ {print NR":"$0}' bb

In the above command, the NR is the built-in variable that represents the line being processed, the $0 refers to the whole line.9

8 Output the lines not containing number 765:

1: awk '!/765/' bb

Author: wujing

Created: 2015-01-23 五 21:22

Emacs 24.3.1 (Org mode 8.2.10)