DeejayT
13. Februar 2016 um 19:54
1
Hallo Leute,
ich versuche mich gerade mit den Befehlen grep und sed um unter Linux (Raspberry) an Daten zu kommen.
Bin allerdings ein Ultranoob in Linux.
Ich habe jetzt folgenden Befehl:
/opt/susvd/susv -status | grep „Battery voltage:“
Hiermit bekomme ich folgende Antwort:
Jetzt möchte ich gerne nur die ausgelesene Spannung bekomme. Das funktioniert wohl mit sed, wie ich aus einem anderen Skript gesehen habe.
Kann mir jemand verraten wie der Befehl mit sed auszusehen hat. Danke im vorraus.
Bayaro
13. Februar 2016 um 21:30
2
Kannst dir auch den kompletten Teil ins IPS holen und dort mit „preg_match“ oder „substr“ arbeiten
Weil „sed“ ist nichts anderes als „preg_match“…nur „preg_match“ kann man schön auf Rubular: a Ruby regular expression editor and tester testen…
Viele Wege führen nach Rom und für alle Befehle gibt es ausreichend Anleitungen im WWW
Beispiel:
<?
$string = "Battery voltage: 4.20V";
preg_match('|.*:\s(.*)|', $string, $match);
echo $match[1];
?>
Mit „sed“ wäre es ähnlich…
Edit: Falls du auf „sed“ bestehst …dann schau dir mal die Beispiele an:
http://sed.sourceforge.net/sed1line_de.html
Grüße,
Chris
kris
14. Februar 2016 um 10:37
3
Hi,
awk bietet sich da auch an
awk -F" " '{print $4}'
bzw in Deinem Fall
/opt/susvd/susv -status | grep "Battery voltage:" | awk -F" " '{print $4}'
Mit freundlichen Grüßen
kris
DeejayT
15. Februar 2016 um 10:36
4
Danke für eure Hilfe, ich habe es mit substr hinbekommen.