必須IDのみを印刷するためにsnmpテキストを処理するBashスクリプト

必須IDのみを印刷するためにsnmpテキストを処理するBashスクリプト

クライアントにOIDがインストールされているかどうかにかかわらず、snmp応答を同じ方法で処理するbashスクリプトを作成しようとしています。

お客様は次のような対応を受けることができます。

SNMPv2-SMI::mib-2.47.1.1.1.1.13.1062 STRING: "GLC-SX-MMD          "

iso.3.6.1.2.1.47.1.1.1.1.13.1062 STRING: "GLC-SX-MMD          "

私はID番号の最後の部分である1062を取得したいと思います。この応答は47.1.1.1.1.13(ID番号)を共有します。

クライアントの初期応答に関係なく、ID番号のみを印刷するようにテキストをどのように処理しますか?

ベストアンサー1

たとえば、数字とドットの後の数字を除くすべての項目を削除できます。

sed -e 's/.*[0-9.]*\.\([0-9]*\).*/\1/'

説明する:

.*         anything
[0-9.]*    digits and dots in any order
\.         dot
\(         start a matching group
  [0-9]*   digits
\)         end the matching group
.*         anything

一致するすべての文字列は、一致するグループ、つまり数字と点の後の最後の数字に置き換えられます。

おすすめ記事