1

以下のコマンドからのテキスト出力を処理する必要があります。

snmpwalk -v2c -c community 192.168.122.15 .1.3.6.1.4.1.14823.2.2.1.4.1.2.1.39

元の出力は次のとおりです。

SNMPv2-SMI::enterprises.14823.2.2.1.4.1.2.1.39.252.200.151.233.54.69.197.39.5.77 = STRING: "Android"

出力を次のようにする必要があります

197.39.5.77="Android"

197.39.5.77=符号の前の最後の 4 桁です。

4

4 に答える 4

1

sed:

snmpwalk -v2c -c community 192.168.122.15 .1.3.6.1.4.1.14823.2.2.1.4.1.2.1.39 \
| sed -e 's/.*\.\([0-9]\+\(\.[0-9]\+\)\{3\}\).*\(".*"\)/\1=\3/'

またはbash適切な場合:

snmpwalk -v2c -c community 192.168.122.15 .1.3.6.1.4.1.14823.2.2.1.4.1.2.1.39 \
| while read a b c; do echo ${a#${a%*.*.*.*.*}.}=\"${c#*\"}; done
于 2013-09-03T08:15:25.130 に答える
0

試すgrep -Eo '(\.[0-9]{1,3}){4}\s*=.*$' | sed -r 'sed -r 's/\s*=[^:]+:/=/;s/^\.//'

=最初の部分は、適切なアドレスの後に;を付けて行末を分離することです。の 2 番目の部分は、 と の間の文字列を消去しsed、IPv4 アドレスの前の最初のドットも消去します。コンパクトにするために、ドットの 4 回とそれに続く最大 3 桁を検索しています。=:grep

于 2013-09-03T07:51:26.017 に答える