Ich muss einige Werte aus einem String abrufen (Ausgabe voniwconfig wlan0 | grep -i Qualität).
Link Quality=37/100 Signal level=57/100 Noise level=0/100
Ich brauche die37ausLinkqualität = 37/100,57ausSignalpegel = 57/100Und0ausGeräuschpegel = 0/100. Es muss nicht im selben Befehl sein. Ich versuche, diese Werte mit mosquitto_pub an den MQTT-Server zu senden.
Jede Hilfe wäre willkommen.
Antwort1
$ iwconfig wlan0 | awk -F'[=/]' 'tolower($0) ~ /quality/{print $2, $4, $6}' file
37 57 0
Antwort2
Mit GNU grep:
iwconfig wlan0 | grep -i quality | grep -oP '\d+(?=/)'
welche Ausgänge
37
57
0
Antwort3
Angenommen, die relevanten Zahlen kommen immer vor „/100“, könnten Sie nach „irgendeine Zahl“ gefolgt von „/100“ greppen und dann alles bis zum „/“ abschneiden:
grep -o '[0-9][0-9]*\/100' your_file | cut -d/ -f1
Dies ergibt die Ausgabe:
37
57
0