![awk를 사용하여 각 열을 합산하고 열 이름과 열 합계를 인쇄하려면 어떻게 해야 합니까?](https://linux55.com/image/153935/awk%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B0%81%20%EC%97%B4%EC%9D%84%20%ED%95%A9%EC%82%B0%ED%95%98%EA%B3%A0%20%EC%97%B4%20%EC%9D%B4%EB%A6%84%EA%B3%BC%20%EC%97%B4%20%ED%95%A9%EA%B3%84%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
숫자 테이블이 포함된 파일이 있습니다. 첫 번째 행은 머리글 행입니다. 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