Neues Problem mit RegExp (was Re: suche regexp)
Hallo
Dienstag, 20. Juni 2006 20:07 - Matthias Houdek wrote:
> [Ersetzen von Dezimalpunkt durch Dezimalkomma in rein numerischen
> Feldern in folgender Struktur (z.B.) bei ein oder zwei
> Nachkommastellen:
> sd34.43|232232.22|2345.4|324234.324|2323.45|123.41|
> ]
>
> sed -r 's/(^|\|)([0-9]+)\.([0-9]{1,2}\|)/\1\2,\3/g' $file
Dieser RegExp macht zwar das Gewünschte, auch wenn das numerische Feld
am Zeilenanfang steht.
Allerdings erfolgt der Wechsel nicht in zwei aufeinanderfolgenden
numerischen Feldern (hier z.B. Felder 2 und 3). Ursache dafür ist, dass
der abschließende Delimiter eines Feldes mit erfasst wird|werden muss
und damit nicht mehr als Einleitung für das nächste Feld aufgenommen
wird. Damit trifft der RegExp für das nachfolgende Feld nicht mehr zu.
Nun kann man ja diesen sed-Befehl 2 x über die Datei laufen lassen, dann
würden auch die im ersten Durchlauf nicht erfassten geändert. Oder man
verdoppelt zuvor alle Feld-Delimiter.
Gibt es keine andere Möglichkeit?
--
Gruß
MaxX
Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.
Reply to: