AWK oder SED, Werte aus String abrufen

AWK oder SED, Werte aus String abrufen

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

verwandte Informationen