四、条件

awk允许指定输出条件,只输出符合条件的行。

输出条件要写在动作的前面。

  1. $ awk '条件 动作' 文件名

请看下面的例子。

  1. $ awk -F ':' '/usr/ {print $1}' demo.txt
  2. root
  3. daemon
  4. bin
  5. sys

上面代码中,print命令前面是一个正则表达式,只输出包含usr的行。

下面的例子只输出奇数行,以及输出第三行以后的行。

  1. # 输出奇数行
  2. $ awk -F ':' 'NR % 2 == 1 {print $1}' demo.txt
  3. root
  4. bin
  5. sync
  6. # 输出第三行以后的行
  7. $ awk -F ':' 'NR >3 {print $1}' demo.txt
  8. sys
  9. sync

下面的例子输出第一个字段等于指定值的行。

  1. $ awk -F ':' '$1 == "root" {print $1}' demo.txt
  2. root
  3. $ awk -F ':' '$1 == "root" || $1 == "bin" {print $1}' demo.txt
  4. root
  5. bin