grep 出力構築ヘルプ

grep 出力構築ヘルプ

使用中のコマンドがあります。

#cat test |grep "Ongoing Calls" |awk -F' ' '{print $3}'
40
2

ご覧のとおり、2つの値40と2を返します。

今、それらを一緒に追加してファイル42に入れたいです。

どんなアイデアでも

ここで編集した内容はテストファイルの内容です。私が望むのは、OnGoing呼び出しの値とそれを一緒に追加することだけです。

    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

このコマンドを使用する場合

    awk '/Ongoing Calls/ { sum += 3 } END { print sum }' test `

[進行中の通話]セクションに何もない場合は、値3が表示されます。

答え1

スクリプトawkを次に変更します。

awk '{ sum += $3 } END { print sum }'

@ 123ユーザーが指摘したように、パイプライン全体を単一の呼び出しで置き換えることができますawk

awk '/Ongoing Calls/ { sum += $3 } END { print sum }' test

答え2

私はこれが次のものを使用するよりも優れているとは言いませんawk

sed -rn 's/Ongoing Calls *([0-9]+).*/\1/p' test | paste -sd+ | bc

関連情報