ajuda a construir a saída do grep

2

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

    
por WMK83 07.07.2016 / 12:14

2 respostas

2

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
    
por 07.07.2016 / 12:29
0

Não estou dizendo que isso é melhor do que usar awk :

sed -rn 's/Ongoing Calls *([0-9]+).*//p' test | paste -sd+ | bc
    
por 08.07.2016 / 16:28