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끝에 두 개의 합계를 인쇄하려면 다음을 수행할 수 있습니다.

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

관련 정보