[Trennmuster] Nachhilfe in regex
Werner LEMBERG
wl at gnu.org
Sa Sep 28 20:49:47 CEST 2013
> Also ich habe es mit dem Holzhammer gelöst, indem ich einen
> Ersetzungsbefehl mehrfach anwende:
Das ist nicht der Holzhammer, sonder meiner Meinung nach die richtige
Methode.
> /---pre2wl---
> | ed -s --verbose <Datei> <<!
> | 1,$ s/^.*$/&;&/g
> | 1,$ s/[-=·\.\|]\+\(.*;\)/\1/g
> | 1,$ s/[-=·\.\|]\+\(.*;\)/\1/g
> | 1,$ s/[-=·\.\|]\+\(.*;\)/\1/g
> | 1,$ s/[-=·\.\|]\+\(.*;\)/\1/g
> | 1,$ s/[-=·\.\|]\+\(.*;\)/\1/g
> | w
> | q
> | !
> \--------------
Mit sed geht es ein klein wenig eleganter. Speichere die nächsten
vier Zeilen in »p.sed«:
h
s/[-=·.|]//g
G
s/\n/;/
Der Aufruf
sed -f p.sed < Eingabe > Ausgabe
macht dann das, was Du gerne hättest. Der Befehl »h« kopiert die
momentane Zeile in einen Zwischenspeicher. »s« entfernt die
Sonderzeichen, »G« hängt \n an die momentane Zeile an, gefolgt von den
Daten im Zwischenspeicher. Und der zweite »s«-Befehl ersetzt \n durch
»;«.
Werner
Mehr Informationen über die Mailingliste Trennmuster