使用中のコマンドがあります。
#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