
ファイルの最後まで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