awkを使用して、異なる行の数値の合計を計算します。

awkを使用して、異なる行の数値の合計を計算します。

次の行は、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最後に2つの合計を印刷するには、次のようにします。

awk 'NR == 2 || NR == 3 || ... {sum1 += $1}
     NR == 1 || NR == 11 || ... {sum2 += $1}
     END {print sum1; print sum2}' file

関連情報