文字列を数値に変換

文字列を数値に変換

次のSNMPコマンドがあります

snmpget -v 1 -c COMMUNITY -t 2 HOST:161  1.3.6.1.4.1.24681.1.2.1.0 | awk '{print $4 $4}' | sed 's/.\(.*\)...../\1/'

文字列を返す

9.10

小数パーセント値は何ですか?

正しく作るために10を掛けたいです。

91.0

上記のコマンドを使用してこれをどのように実行できますか?

ありがとうございます!男


このsnmpgetコマンドは文字列を出力します

iso.3.6.1.4.1.24681.1.2.1.0 = STRING: "9.10 %"

答え1

awk次のコマンドを使用してください。

# Use two sepatators, <space> and ", so you catch exactly the number.
# Multiply by 10
# `printf` allows you to format numbers in many ways, in this case, 1 decimal

str='iso.3.6.1.4.1.24681.1.2.1.0 = STRING: "9.10 %"'

$ echo "$str" | awk -F'[ "]' '{ printf "%.1f\n", $5*10 }'
91.0

または指摘したようにおめでとうございます、これはまた働きます:

echo "$str" | awk -F \" '{ printf "%.1f\n", $2*10 }'

printf型修飾子

%e、%E、%f、%F
小数点の右側の桁数です。 `

関連情報