2016-03-21 16 views
0

私はSNMPサービスからデータを抽出しています。出力は次のようになります。複数の値を抽出するBash

experimental.94.4.5.1.6.16.0.0.192.221.13.147.179.0.0.0.0.0.0.0.0.1 = Hex-STRING: 00 00 00 1A 85 95 13 F4 
experimental.94.4.5.1.6.16.0.0.192.221.13.147.179.0.0.0.0.0.0.0.0.24 = Hex-STRING: 00 00 10 8E 0C F4 99 1C 
experimental.94.4.5.1.6.16.0.0.192.221.31.68.71.0.0.0.0.0.0.0.0.10 = Hex-STRING: 00 00 17 10 45 A5 13 3C 

出力を3つの部分にしたいと思います。

192.221.13.147.179 1 0000001A859513F4 
192.221.13.147.179 24 0000108E0CF4991C 
192.221.31.68.71 10 0000171045A5133C 

awkを使用して3つすべてを個別に実行できますが、すべてを一度に完了することはできません。

awk '{print substr($0,28,35)}' 
+2

ショー。 'substr'は変数に代入できる文字列を返すので、3つの変数に対して3回使うことができ、3つの変数を1つのprint文で出力することができます。空白とドットにフィールドを分割してから、必要なビットを選択して印刷することをお勧めします。 SNMPの表記は、誰もが苦労するほどです!また、表示されるコマンドは、 '' 0.0.192.221.13.147.179.0.0.0.0.0.0.' 'のような出力を生成します。これは、あなたが作成したいと言っているものに非常に密接に対応していません。真実が欠けている。 –

答えて

2

あなたが使用することができます:あなたは3つの個別 `awk`コマンドなど、三つの部分のそれぞれを行う方法

awk 'BEGIN{FS="[.: ]"}{print $10"."$11"."$12"."$13"."$14" "$23" "$27$28$29$30$31$32$33$34}' 
+0

そうです。適切な出力。 – nyitguy

関連する問題