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を使用して必要な列だけを一時ファイルに入れることを検討しましたが、ファイルが30MBから100MB以上の間で簡単に変動する可能性があることを考慮すると、中間ファイルを含めない方が速いと思います。私はファイルを裏返して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

関連情報