AWKまたはSED、文字列から値を取得する

AWKまたはSED、文字列から値を取得する

文字列から複数の値を取得する必要があります(出力:iwconfig WLAN0 | grep -i 品質)。

Link Quality=37/100  Signal level=57/100  Noise level=0/100

しなければならない37~からリンク品質=37/10057~から信号レベル=57/100そして0~から騒音レベル=0/100。同じコマンドにある必要はありません。私が望むのは、mosquitto_pubを使用してこの値をMQTTサーバーに公開することです。

どんな助けでも大変感謝します。

答え1

$ iwconfig wlan0 | awk -F'[=/]' 'tolower($0) ~ /quality/{print $2, $4, $6}' file
37 57 0

答え2

GNU grepを使用してください:

iwconfig wlan0 | grep -i quality | grep -oP '\d+(?=/)'

どの出力

37
57
0

答え3

関心のある数字が常に「/100」の前に表示されると仮定すると、「some number」の後に「/100」が続くことを確認してから、すべてを「/」に切り捨てることができます。

grep -o '[0-9][0-9]*\/100' your_file | cut -d/ -f1

結果は次のとおりです。

37
57
0

関連情報