awk를 사용하여 각 열을 합산하고 열 이름과 열 합계를 인쇄하려면 어떻게 해야 합니까?

awk를 사용하여 각 열을 합산하고 열 이름과 열 합계를 인쇄하려면 어떻게 해야 합니까?

숫자 테이블이 포함된 파일이 있습니다. 첫 번째 행은 머리글 행입니다. awk를 사용하여 각 열의 합계를 계산하고 각 열의 합계와 열 이름을 인쇄하고 싶습니다.

어떻게 해야 합니까?

답변1

각 행에 동일한 수의 필드(열)가 있다고 가정합니다.

awk '
    NR==1   { for (i=1; i<=NF; i++) header[i]=$i; next; }
            { for (i=1; i<=NF; i++) total[i] += $i; }
    END     { for (i=1; i<=NF; i++) print header[i] "=" total[i]+0 }
    '

입력 예:

red green blue
1 2 4
8 16 32
64 128 256

해당 출력:

red=73
green=146
blue=292

관련 정보