nawk를 사용하여 $1, $2 및 $3 필드의 모든 숫자를 합하는 방법은 무엇입니까?

nawk를 사용하여 $1, $2 및 $3 필드의 모든 숫자를 합하는 방법은 무엇입니까?

$1nawk를 사용하여 , $2및 필드 의 모든 숫자를 합하는 방법은 무엇입니까 $3?

8     6     2

7     3     5

1     9     4

결과가 합계 = 45가 되기를 원합니다.

답변1

nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in

답변2

awk 사용 :

awk '{x+=$0;}END{print x}' RS="[ \n]"  file

이는 행이나 열의 수에 관계없이 작동합니다. 레코드 구분 기호(RS)를 공백이나 개행 문자로 사용하면 모든 값이 별도의 줄로 분할되므로 쉽게 추가할 수 있습니다.

답변3

coreutils 및 bc를 사용할 수도 있습니다.

<file head -c-1 | tr ' \n' '++'; echo) | bc

일부 열을 생략해야 하는 경우(예: 입력이 다음과 같은 경우)

A 8 6 2
B 7 3 5
C 1 9 4

cut원하는 것을 선택할 수 있습니다:

<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc

두 경우 모두 출력:

45

관련 정보