Thread If - Then - Ersetze Syntax (11 answers)
Opened by NeVe at 2019-07-30 08:03

NeVe
 2019-08-05 09:36
#190338 #190338
User since
2019-07-30
4 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen und Danke dass Ihr euch meinem Problem widmet. Ich war einige Tage im Urlaub und konnte daher noch nicht reagieren :)

Also:

Fakt ist folgender um es genauer zu spezifizieren:

Ich habe einen Ordnerinhalt mit .DAT Dateien, welche jedoch mit dem Editor auslesbar sind.

Eine dieser .DAT sieht zum beispiel so aus:

MARIS|DOC|XXXXX|GYN endgl. Brief ambulante OP|XXXXX|XXXX|8228284|1889286|XXXXXX12|XXXXX|null||null|20190719|ZWMAMB

Ich muss beide "null" ersetzen.

Das erste "null" mit einem Fixen, immer gleich bleibenden Wert bei allen .DAT dateien:

200088

Das zweite "null" hängt von dem Wort ab was an Position von "GYN" steht. Steht dort GYN soll auch als zweite "null" GYN stehen. Steht dort AMB soll als "null" AMB stehen.

Zwei Beispiele aus einem Ordner wie es aussehen muss:

Beispieldatei 1 vorher:

MARIS|DOC|XXXXXX|CH2 endgültiger Arztbrief|XXXXX|XXXXX|8018221|XXXXX|XXXXX|20190527|null||null|20190527|ZWMAB

Nachher:

MARIS|DOC|XXXXX|CH2 endgültiger Arztbrief|XXXXX|XXXXX|8018221|XXXXX|XXXXX|20190527|200088||CH2|20190527|ZWMAB


zweite Datei vorher:

MARIS|DOC|XXXXX|GYN endgl. Brief ambulante OP|XXXXX|XXXX|8228284|1889286|XXXXXX12|XXXXX|null||null|20190719|ZWMAMB

nacher:

MARIS|DOC|XXXXX|GYN endgl. Brief ambulante OP|XXXXX|XXXX|8228284|1889286|XXXXXX12|XXXXX|200088||GYN|20190719|ZWMAMB

WICHTIG! Es dürfen keine Zeilenumbrüche am ende des Textes vorhanden sein. Sonst kann die Datei nicht weiterverarbeitet werden.

Es war mir möglich einen Powershellbefehl dafür zu schreiben der auch funktioniert, allerdings hängt dieser einen linebreak am Ende an und das ist nicht optimal. Da ich nicht der Mega Programmierer bin und PERL ja mit Regex arbeitet dachte ich wäre es eine gute alternative :)

*EDIT* Da ich ja bereits einen funktionierenden Shell Code besitze könnte man vereinfacht auch hingehen und sagen man macht einen Befehl um aus allen .DAT am ende des Inhalts den Linebreak zu entfernen.

Möglicher Coder hierzu wäre denke ich:

use strict;

my $str = 'XXXXXXXXXXXXXXX';
my $regex = qr/\n/mp;
my $subst = '';

my $result = $str =~ s/$regex/$subst/rg;

print "The result of the substitution is' $result\n";

Ich weiß allerdings nicht wie ich das auf einen ganzen Pfadinhalt beziehe.
Last edited: 2019-08-05 09:41:39 +0200 (CEST)

View full thread If - Then - Ersetze Syntax