0

我正在尝试根据 column2 的值提取 column1。只有当 column2 ≤30 且大于 5 时,我才想打印 column1 的值。

我还需要根据输出打印 column1 的值的总数。如何使用来自多个文本文件的 awk 执行此操作?

文本文件示例如下所示。

col1   col2  

aa     25
bb     4
cc     6
dd     23
aa     30

输出将是

aa
cc
dd
aa

Total number of aa is 2
Total number of cc is 1
Total number of dd is 1
4

1 回答 1

3

像这样让你开始的东西:

{ if ($2 <= 30 && $2 > 5) {
    print $1
    tot[$1] += 1 }
}
END {

  for (i in tot) {
    print "Total number of", i, "is", tot[i]
  }
}

输出:

$ awk -f i.awk input
aa
cc
dd
aa
Total number of aa is 2
Total number of cc is 1
Total number of dd is 1
于 2012-06-05T11:13:47.387 回答