Ich versuche, einen Wert aus einem Informationsblock zu bekommen.Extrahieren einer Zahl in einer Zeile mit sed
Ich erstelle die folgende Ausgabe:
RSSI: -21
RSSI: -12
RSSI: -13
RSSI: -13
RSSI: -16
RSSI: -13
mit folgendem Befehl ein:
hcidump -a | egrep 'RSSI|bdaddr' | grep -A1 --no-group-separator 'bdaddr XX:XX:XX:XX:XX' | egrep 'RSSI'
Aber ich mag nur den Wert am Ende bekommen angezeigt werden. Aber ich bin mit dem richtigen Muster zu kämpfen, fand ich im Internet viele Hinweise, aber nicht eine, die, zum Beispiel funktioniert:
sed 's/RSSI: //'
Ferner möchte ich wissen, ob es wie ein glatter Weg meines Befehl auf das ist oben, weil es bei jedem | erscheint Die Ausgabe wird langsamer, als würde sie einen Puffer füllen, bevor sie die Werte ausgibt.
PS: Ich möchte diesen Befehl in C mit der Funktion system() verwenden, gibt es eine Option, um den Wert in einer C-Variable gespeichert werden? nur die zweite Spalte, wenn man bedenkt ein Leerzeichen als Spaltenbegrenzer
cut -d' ' -f2 myfile
erhalten Sie folgende Ausgabe:
beide Versionen funktionieren perfekt. – DaPole