Suchen und ersetzen mit sed

06/03/2012 - 01:03 von Stefan+Usenet | Report spam
Ich moechte via Pipe gerne \' durch '' ersetzen - so weit, so gut.
Leider enthaelt der Text aber einerseits noch andere Zeichen, die
mit dem \ geschuetzt sind (aber nicht veraendert werden sollen),
insbesonderen den \ selbst und andererseits auch ungeschuetzte '.

Dadurch entstehen Transformationen wie:

\'a\' => ''a''
'\'a\\' => '''a\\'
'\'a\\\'' => '''a\\'''

Im Prinzip laeuft es auf "ersetze (\\.) durch \1, ausser es handelt
sich um (\\'), dann ersetze durch ''" hinaus. Aber bekomme ich das
mit einem sed-Kommando hin?

Servus,
Stefan

http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - Liebe, die nicht zupft.
(Sloganizer)
 

Lesen sie die antworten

#1 Werner Flamme
06/03/2012 - 17:29 | Warnen spam
Stefan Froehlich [06.03.2012 01:03]:
Ich moechte via Pipe gerne \' durch '' ersetzen - so weit, so gut.
Leider enthaelt der Text aber einerseits noch andere Zeichen, die
mit dem \ geschuetzt sind (aber nicht veraendert werden sollen),
insbesonderen den \ selbst und andererseits auch ungeschuetzte '.

Dadurch entstehen Transformationen wie:

\'a\' => ''a''
'\'a\\' => '''a\\'
'\'a\\\'' => '''a\\'''

Im Prinzip laeuft es auf "ersetze (\\.) durch \1, ausser es handelt
sich um (\\'), dann ersetze durch ''" hinaus. Aber bekomme ich das
mit einem sed-Kommando hin?



Ohne es zu testen: s|\\[^']|\1|

sollte \\, gefolgt von einem Zeichen, das nicht ' ist, ersetzen. Wünsche
ich mir ;-)

Gruß
Werner

Ähnliche fragen