以下行对位于第 2 行和第 #3 行、第 #4 行和第 #5 行、第 #6 行和第 #7 行等中的数字进行求和(因此,以连续方式求和)。
awk ' NR==1{$1=$1; print; next} !(NR%2){split($0,a);print; next} {for(i=1;i<=NF;i++) $i+=a[i]}1' file
好吧,我试图“概括”前面的代码,所以我需要做一些事情来对任何行求和,例如我需要做什么才能获得这样的总和:
row #2 + row #3 + row #4 + ... + row #10 + row #14 + row #15 + row #19
row #1 + row #11 + row #12 + row #13 + row #16 + ... +row #18 + row #20
答案1
如果您想手动指定相关的列号,然后只awk
在最后打印出两个总和,您可以这样做:
awk 'NR == 2 || NR == 3 || ... {sum1 += $1}
NR == 1 || NR == 11 || ... {sum2 += $1}
END {print sum1; print sum2}' file