![Bash를 사용하여 두 개의 숫자를 추가하는 방법](https://linux55.com/image/129555/Bash%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%91%90%20%EA%B0%9C%EC%9D%98%20%EC%88%AB%EC%9E%90%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
다음 파일이 있습니다.
lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt
344 server1
1 server2
각 행에 숫자를 더할 수 있기를 원합니다. 따라서 이 경우에는 344 + 1을 더해 345가 되도록 하겠습니다.
지금까지 나는 다음 단계를 알아냈습니다.
lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'
344
1
하지만 그것들을 어떻게 합치는 지 모르겠습니다. $a + $b 구문만 사용할 수 있다는 것을 알고 있지만 344와 1을 별도의 변수에 넣어 이를 수행하려면 어떻게 해야 합니까?
감사해요.
편집 1
합계 대신 두 개의 반환 값을 얻습니다. 내가 뭘 잘못하고 있는지 알 수 없습니다.
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print
sum}'
344
345
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{ sum+=$1} {print sum}'
344
345
답변1
awk에서는 수학 연산을 쉽게 수행할 수 있습니다. 예는 다음과 같습니다.
awk '{ total+=$1 } END { print total }'
Bash를 정말로 사용하고 싶다면 간단한 루프를 사용하여 한 번에 한 줄씩 읽고 함께 추가할 수 있습니다.
count=0
while read -r number _; do # put the first column in "number" and discard the rest of the line
count=$(( count + number ))
done < /tmp/foo
echo $count