$1
nawk를 사용하여 , $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