当 X 列存在时添加值

当 X 列存在时添加值

我有一个看起来像这样的文件

InvoiceDate    Bill Person     BAN    Type    Amount    Amount-Expenses   GreenFee      TaxAmount    FinalTotal
1524753593    Jennifer Doe     39193  S       33.30      20               2             1            75
1524753593    Jason Bourne Doe 395931 S       27.00      11               2             1            57.33
1524753593               Feature    D    15    12.00    64.20
1524753593    Jean-Pierre Doe  395931 S       53.10      44               2             1            12.33
1524753593               Feature    D    12    5.00     74.32
1524753593    Jamie Doe        39193  S       35.30      42               2             1            53.11

我需要获取文件的总数...它有数千个条目,如上面的采样。我需要最后一列的总数,但前提是列数大于 8。

我考虑过使用 grep 只将我需要的列放入临时文件中,但考虑到该文件很容易在 30 到 100+ MB 之间波动,我相信不涉及中间文件会更快。我考虑过反转文件,从类型为 S 的第一列中获取所有数字,但我不确定如何通过 awk 来做到这一点。

答案1

awk 'NF>=8 && NR>1 { entries++; sum+=$8 } END { print "Total for column 8:", sum, "over", entries, "records with this value present." }' inputfile

相关内容