Thread If - Then - Ersetze Syntax
(11 answers)
Opened by NeVe at 2019-07-30 08:03
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) |