grep und sed , gleicher Regulärer Ausdruck , sed mit falschem Ergebnis.

Josef Federl - Samstag, 15. April 2017 00:23:41 - 1 Antworten

Daten:
dlfkjgkldgjldfgl55.55klsdjfl
jfjfjfj8.22fdgddfg
{"id":"1","name":"Phase L1","unit":"A","type":"1","value":"0.00","error":0}
{"id":"2","name":"Phase L2","unit":"A","type":"1","value":"10.03","error":0}
{"id":"3","name":"Phase L3","unit":"A","type":"1","value":"-2.00","error":0}

Abfragen:
acersepp@~: grep -o '\-\?[0-9]\{1,2\}\.[0-9]\{2\}' stromsed
55.55
8.22
0.00
10.03
-2.00
acersepp@~: sed 's/.*\(\-\?[0-9]\{1,2\}\.[0-9]\{2\}\).*/\1/' stromsed
5.55
8.22
0.00
0.03
2.00
acersepp@~:

Ich kann hier nicht erkennen wieso sed nicht das richtige Ergebnis liefert?

Antworten
Die Gier ist schuld
TomH (unangemeldet), Mittwoch, 19. April 2017 10:57:26
Ein/Ausklappen

das führende '.*' im match ist gierig, d.h., es matcht auch das '-'

in Perl regex kann man das durch nachstellen eines '?' ungierig machen, was im sed aber nicht klappt.

perl -pe 's/.*?(-?[0-9]{1,2}.[0-9]{2}).*/\1/' stromsed
55.55
8.22
0.00
10.03
-2.00



Bewertung: 218 Punkte bei 53 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

  • The Answer Girl
    Solange man online ist, halten sich die Sprachprobleme in Grenzen: Web-Wörterbücher wie dict.leo.org helfen in meistens akzeptabler Geschwindigkeit über die Hürden des fehlenden (Englisch-) Wortschatzes hinweg. Doch wehe, man ist weder mit Standleitung noch Flatrate gesegnet: Schon ärgert man sich, das Regal mit den papiernen Wörterbüchern am anderen Ende des Raums aufgestellt zu haben.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Erste Schritte mit Regular Expressions
    Computer erleichtern die Arbeit – man muss ihnen nur genau sagen, was sie tun sollen. Mit regulären Ausdrücken beschleunigen Sie das Suchen und Ersetzen von Zeichenketten auf elegante Art.
  • Schnipseljagd
    Computer erleichtern die Arbeit – sofern man ihnen genau sagt, was sie tun sollen. Mit regulären Ausdrücken beschleunigen Sie das Suchen und Ersetzen von Zeichenketten auf elegante Art.
  • The Answer Girl
    Dass der Computeralltag auch unter Linux immer wieder für Überraschungen gut ist, ist eher eine Binsenweisheit: Immer wieder funktionieren Dinge nicht oder nicht so, wie eigentlich angenommen. Das Answer-Girl im Linux-Magazin zeigt, wie man mit solchen Problemchen elegant fertig wird.

Aktuelle Fragen

Samsung VG-KBD1500 - Bluetooth-Tastatur mit Touchpad mit Xubuntu 16.04.2 LTS
Linux- & BSD-UserGroup im Weserbergland, 16.08.2017 19:16, 0 Antworten
Bin grad mit "meinem Latein am Ende" darum hier mal so in den Raum geworfen. Samsung VG-KBD1500 -...
Tails verbindet nicht mit WLan
Georg Vogel, 30.07.2017 15:06, 5 Antworten
Hallo zusammen! Habe mir von Linux Mint aus einen Tails USB-Stick erstellt. Läuft soweit gut,...
Genivi for Raspberry Pi 3
Sebastian Ortmanns, 28.07.2017 10:37, 1 Antworten
I try to build a Genivi Development Platform for Rasberry Pi 3. But I always get the failures bel...
Bash awk Verständnis-Frage
Josef Federl, 22.07.2017 17:46, 2 Antworten
#!/bin/bash # Skriptdateiname = test.sh spaltennummer=10 wert=zehner awk '{ $'$spaltennummer'...
Bash - verschachtelte Variablenersetzung, das geht doch eleganter als meine Lösung?
Josef Federl, 18.07.2017 20:24, 3 Antworten
#!/bin/bash #Ziel des Skriptes wird sein die ID zu extrahieren hier nur als Consolentest: root@...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 16.08.2017 21:56
Hallo Volker, Volker Borst schrieb am 16.08.2017 um 19:22: > > echo $PS1 > > ${debian_chr...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Volker Borst, 16.08.2017 19:22
Hallo Uwe, > echo $PS1 ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ Einen neuen Benutzer habe ich jet...
Re: [EasyLinux-Ubuntu] bash Leerzeichen vor dem Curser
Uwe Herrmuth, 16.08.2017 07:58
Hallo Volker, Volker schrieb am 12.08.2017 um 12:11: > Nach dem Aufrufen von 16.04 habe ich in der bash...
Re: [EasyLinux-Ubuntu] Internet Geschwindigkeit
Udo Teichmann, 14.08.2017 15:44
Am Sonntag, den 13.08.2017, 07:16 +0200 schrieb Alfred Zahlten: Hallo Alfred > > https://www.d...
Re: [EasyLinux-Ubuntu] Internet Geschwindigkeit
Alfred Zahlten, 13.08.2017 07:16
Am 12.08.2017 um 18:47 schrieb Udo Teichmann:> Am Samstag, den 12.08.2017, 08:47 +0200 schrieb Rainer: G...