[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Text editieren mehrmals



On Thursday 24 February 2005 08:53, Orlando Rose wrote:
> Am Donnerstag, 24. Februar 2005 00:21 schrieb gebhard dettmar:
> > Poste doch mal ein richtiges Beispiel
>
> aus
> "004273200501012005010118399+00000000.000+00000000.00+00000038.14054 "
> soll
> "TAR0012005010004273000000183000000000000000000000054000              
> 000000000+00000+0000000000000000000+00000000+0000000+0000000+000000000+ 
> 000003814+0000000+E000000  " werden
Darin vermag ich kein Muster zu erkennen.
Wenn es keins gibt, sehe ich auch nicht, wie man hier mit RegExes 
weiterkäme. Falls doch, musst du mit Intervallen und Rückwärtsreferenzen 
arbeiten. Also als einfaches Beispiel:
123456789
soll zu 
TAR789456123
werden. Das wäre im vi
:s/\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]\{3\}\)/TAR\3\2\1/
wobei du vor dem "s" noch den Raum der Zeilen angeben kannst, über den 
sich die Änderung erstrecken soll. In Einzelteile aufgedröselt heißt das:
\([0-9]\{3\}\)
ist eine beliebige Zahl, die genau 3x vorkommen soll, eigentlich nur:
[0-9]{3}. Das musst du im Ersetzungsteil (/ vor dem TAR) wiederaufnehmen 
können, deshalb kommen da runde Klammern als Gruppierung rum, die im 
Ersetzungsteil mit "\1", "\2" usw. referenziert und nach Bedarf gruppiert 
werden können. Dann muss man noch die sog. "Geschmacksrichtungen" 
beachten, d.h., z.B. im vi werden runde und geschweifte Klammern mit 
Backslash maskiert, bei Perl nicht.
Aber bei obigem ... I haven't the slightest idea ;-(
> mfg
> orlando
Ratlos,
Gebhard



Reply to: