Forums Neueste Beiträge
 

Umbruch nur bei bestimmten Zeilen ersetzen

24/06/2009 - 10:51 von Lars Behrens | Report spam
Hallo zusammen,

kann mir jemand bei folgendem Regex-Problem helfen?

In einigen Dateien, die eigentlich so aussehen sollten:


[...]
Bla
Bla
\marker{Richard, Jagger, Wyman, Watts, Wood}
\marker{Harrison, McCartney, Starr, Lennon}
\marker{Heino}
Bla
Bla
[...]


hat sich bisweilen ein Umbruch in die Klammer eingeschlichen:


[...]
Bla
Bla
\marker{Richard, Jagger, Wyman, Watts, Wood}
\marker{Harrison, McCartney,
Starr, Lennon}
\marker{Heino}
Bla
Bla
[...]


der soll raus und durch ein Leerzeichen ersetzt werden (mit sed in der GNU
bash), und ich komm' nicht drauf, wie ich "'\marker' am Zeilenanfang"
mit "keine Klammer am Zeilenende" verknüpfe.

Danke schonmal!

Cheerz Lars
 

Lesen sie die antworten

#1 Alexander Bartolich
24/06/2009 - 12:16 | Warnen spam
Lars Behrens schrieb:
[...]
der soll raus und durch ein Leerzeichen ersetzt werden (mit sed in der GNU
bash), und ich komm' nicht drauf, wie ich "'\marker' am Zeilenanfang"
mit "keine Klammer am Zeilenende" verknüpfe.



Trivialerweise so:

/^\\marker.*[^}]$/

Sed ist allerdings nicht das beste Werkzeug um Zeilenumbrüche zu
entfernen.

$ cat lars.sed
!#/bin/sed -nf
/^\\marker.*[^}] *$/ {
h
n
H
x
s// /g
p
b
}
p

$ sed -nf lars.sed < lars.input
Bla
Bla
\marker{Richard, Jagger, Wyman, Watts, Wood}
\marker{Harrison, McCartney, Starr, Lennon}
\marker{Heino}
Bla
Bla

seq 0 1 99 | xargs -I. echo 'Romani Ite Domum!'

Ähnliche fragen