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 に答える