列のバイト合計を計算する方法は?

列のバイト合計を計算する方法は?

次の表があります。 11月の月の間にのみ記録されたバイト合計をどのように計算できますか?たとえば、以下では11月の行を見つけて、4列に11月に関連する数字を追加したいと思います。どうすればいいですか?

1 arnold   user   1933 Nov  7 13:05 
2 megan   user  10809 Nov  7 13:03 
3 sam   user    983 Apr 13 12:14 
4 mark   user  31869 Jun 15 12:20 
5 sandy   user  22414 Nov  7 13:03 
6 semon   user  37455 Nov  7 13:03 
7 andre   user  27511 Dec  9 13:07 
8 jim   user   7989 Nov  7 13:03 

答え1

awk次のことを試すことができます。

awk '$5 == "Nov" { sum += $4 }END { print sum }'  file
80600

$ 5はその月に関連する列を表します。$5 == "Nov"11月のテーブルのすべての履歴をフィルタリングし、awk$ 4列の数字を合計します。

答え2

awkを使用してください:

awk 'BEGIN {sum = 0}
$5 == "Nov" {sum += $4}
END {print sum}' < data

dataこの履歴を含むファイルはどこにありますか?

答え3

目標月を簡単に変更できるようにするには、すべての月を配列として合計し、関連する配列要素のみを印刷します。

awk '{SUM[$5] += $4} END {print SUM["Nov"]}' file
80600

関連情報