Bash를 사용하여 두 개의 숫자를 추가하는 방법

Bash를 사용하여 두 개의 숫자를 추가하는 방법

다음 파일이 있습니다.

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

관련 정보