Forumgrep und sed , gleicher Regulärer Ausdruck , sed mit falschem Ergebnis.
Josef Federl – Samstag, 15. April 2017 00:23 Uhr

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?

1 Antwort
TomH – Mittwoch, 19. April 2017 10:57 Uhr

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