awkコマンドを使用して各行の値を計算する方法

awkコマンドを使用して各行の値を計算する方法

給与書類があります。

給与伝票

awkコマンドを使用して、行-10の各値から各行の値を計算するのに役立ちますか? 結果

このコマンドを使用すると、最初の行のみを計算できます。

awk '{sum += $3*7} END {print sum}' RS= payroll.txt

ベストアンサー1

する:

awk '{for (i=2;i<=NF;i++) sum[$1]+=$i-10} END{for (i in sum) \
          print i, "Total =", sum[i]}' file.txt
  • {for (i=2;i<=NF;i++) sum[$1]+=$i-10}フィールドaddを繰り返すと、sum最初のフィールドがキーでフィールド値から10を引いた値を持つ配列が作成されます。

  • END{for (i in sum) print i, "Total =", sum[i]}、目的の出力形式で配列のキーと値を印刷します。

例:

% cat file.txt
employee1 75 75 75 75 75 75 75
employee2 80 80 80 80 80 80 80
employee3 50 50 50 50 50 50 50

% awk '{for (i=2;i<=NF;i++) sum[$1]+=$i-10} END{for (i in sum) print i, "Total =", sum[i]}' file.txt
employee1 Total = 455
employee2 Total = 490
employee3 Total = 280

おすすめ記事