AWK 或 SED,從字串中檢索值

AWK 或 SED,從字串中檢索值

我需要從字串中檢索幾個值(輸出來自iwconfig WLAN0 | grep -i 質量)。

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

我需要37連結品質=37/100,57訊號電平=57/1000噪音水平=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”之前,您可以 grep 查找“某個數字”,後面跟著“/100”,然後將所有內容剪切到“/”:

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

這給出了輸出:

37
57
0

相關內容