AWK 每两行求和

AWK 每两行求和

我想对两行求和,直到文件末尾:

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

一种方法是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

相关内容