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

Re: suche regexp



Hallo Roland M. Kruggel, hallo auch an alle anderen

Dienstag, 20. Juni 2006 16:27 - Roland M. Kruggel wrote:
> Am Dienstag, 20. Juni 2006 16:11 schrieb Thorsten Haude:
> > Moin,
> >
> > * Roland M. Kruggel wrote (2006-06-20 14:28):
> > >Ich muss jetzt in einigen Felder den Punkt durch ein Komma
> > > ersetzen. Eigentlich trivial wenn da nicht das Datum und das
> > > Textfeld drin wäre. Dort müssen die Punkte bleiben.
> >
> > Also:
> > Zeilenanfang oder |             (^||)
> > dann beliebig viele Ziffern     \d*
> > dann ein Punkt                  \.
> > dann ein oder zwei Ziffern      \d{1,2}
> > dann ein |                      |
>
> Verstanden
>
> > Ergebnis:
> > /(^|\|)/\d*\.\d{1,2}|/
>
>          ^
> ist dann nicht der zuviel?
>
> > Wenn die Zahlen wie in Deutschland üblich immer eine Vorkommastelle
> > haben sollen, dann mußt Du den * durch ein + ersetzen.
> >
> > Wie Du den Punkt ersetzt hängt von der Umgebung und Deinen
> > Vorlieben ab. In Perl zB. so ungefähr:
> > s/((^|\|)/\d*)\.(\d{1,2}|)/\1,\2/
>
> Perl hört sich gut an.
> Wäre es unverschämt von mir, wenn ich um einen perlaufruf bitten
> würde. Dann könnte ich mir ein bash-script bauen das die ganzen 58
> File nacheinander abklappert.

Wenn du es mit einem Bash-Script machen willst, dann nimm doch sed.

oldfile = "<filename1>"
newfile = "<filename2>"
sed 's/(^|\|)(\d+)\.(\d{1,2}\|)/\1\2,\3/g' $oldfile > $newfile

Das kannst du dir jetzt noch schön in eine Schleife einbasteln ;-)

Und testen! Weil: Wie immer ohne Gewähr *g*

-- 
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: