Textstellen mir sed ausschneiden

Post Reply
Message
Author
Seddist

Textstellen mir sed ausschneiden

#1 Post by Seddist »

Hallo,

ich habe mehrere Zeilen, in denen immer, mitten im Text, ein Muster vorkommt, daß so grob so aussieht: val=3241
Die Zahlen sind natürlich nicht konstant, haben aber immer vier Stellen. Jetzt würde ich gerne genau dieses Muster ausschneiden und den Rest vor- und hinterher wegschneiden.

Beispiel

Code: Select all

#echo "Bauer Ernst kauft für?val=3241öfter mal Kühe ein" | sed 'black_magic' 
# val=3241
Leider ist nicht garantierbar, daß vor oder hinter dem val ein Leerzeichen ist.

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#2 Post by komsomolze »

Code: Select all

sed  's@.*\(val=[0-9]{4}\).*@\1@'
?
mfg komsomolze

seddist

#3 Post by seddist »

Danke, aber das funktioniert leider nicht.

Ob ich nun einen

Code: Select all

# cat dateiname 
oder

Code: Select all

# cat dateiname | sed  's@.*\(val=[0-9]{4}\).*@\1@'
mache, die Ausgabe bleibt exakt die gleiche. sed scheint in diesem Falle gar nichts zu machen

seddist

#4 Post by seddist »

Die geschweiften Klammern müssen noch escaped (wie ist denn das deutsche Wort dafür?) werden, dann klappt es.

Code: Select all

sed  's@.*\(val=[0-9]\{4\}\).*@\1@'
Vielen Dank & guten Rutsch!

Post Reply