Altere seu script awk
para
awk '{ sum += $3 } END { print sum }'
Como o usuário @ 123 aponta, todo o pipeline pode ser substituído por uma única chamada para awk
:
awk '/Ongoing Calls/ { sum += $3 } END { print sum }' test
Eu tenho um comando que estou usando
#cat test |grep "Ongoing Calls" |awk -F' ' '{print $3}'
40
2
Como você pode ver, retorna 2 valores 40 & 2
Eu quero agora adicionar estes juntos e colocar em um arquivo como 42
alguma ideia
edite aqui está o que está no arquivo de teste - tudo que eu quero são os valores nas chamadas do OnGoing e somados
Iedge Group 1
RasIpAddr 0.0.0.0/0
SubnetIP
SubnetMask
Max Calls 50 (0:-1)
Max 911 Overflow Calls 0 (0:0)
Ongoing Calls 2 (0:2)
Ongoing Calls 40 (40:0)
Max Src Hunting 0
Max number of simultaneously allowed transfer calls 0
Ongoing transfer calls 0
Priority 0
Call Duration 0
Idle TCP/TLS/SCTP Connection Timeout 0
Bi-directional TCP/SCTP connections enabled
Capabilities gateway
SIP enabled
H323 disabled
Zone
quando eu usei este comando
awk '/Ongoing Calls/ { sum += 3 } END { print sum }' test '
Eu continuo recebendo o valor 3 se não houver nada na seção de chamadas do OnGoing
Não estou dizendo que isso é melhor do que usar awk
:
sed -rn 's/Ongoing Calls *([0-9]+).*//p' test | paste -sd+ | bc