AWKは2行ごとに合計を行います。

AWKは2行ごとに合計を行います。

ファイルの最後まで2行を合計したいです。

1 2 3 4
0 1 2 3
0 4 5 6
2 3 5 6

出力は

1 3 5 7
2 7 10 12

以下を試しましたが、最初の行でのみ機能します。

awk '{s+=$1}NR%2==0{print s;s=0}' testfileForSum.txt 

ベストアンサー1

1つの方法は次のとおりですawk

awk '
  NR%2 { split($0, a) ; next }
  { for (i=1; i<=NF; i++) printf " %d", a[i]+$i ; print "" }
'

説明:偶数(NR%2)行の場合、配列内の現在の行のフィールドを覚えていますa。他の(奇数)行の場合は、フィールドを繰り返し、対応する記憶フィールドa[i]と現在のフィールドの合計を印刷します。$i

おすすめ記事