Thread Ersetzen ein einzelnen Punktes in einer Zeile durch tr
(1 answers)
Opened by bruci164 at 2008-10-09 20:40
Hallo zusammen,
brauche mal Hilfe, auch wenn's in dem Fall peinlich ist ... Ich will eine Datei einlesen und für den Fall, dass eine Zeile nur aus einem einzelnen Punkt besteht diesen durch ein "-" ersetzen. Ich lese also die Datei Hallo ! Dies ist ein Text. Und ein Datum: 09.10.2008 Außerdem noch ein . . Hallo Punkt !!! . . in das Skript #!/usr/local/bin/perl -w open(TPL,"<text.txt") or die "Sorry ... kann text.txt nicht öffnen!\n"; #loop while ($search_attribute = <TPL>) { print "search_attribute alt : " . $search_attribute; $search_attribute =~ tr /^\.$/-/; print "search_attribute neu : " . $search_attribute; } close TPL; ein, erhalte jedoch als Ausgabe search_attribute alt : Hallo ! Dies ist ein Text. search_attribute neu : Hallo ! Dies ist ein Text- search_attribute alt : Und ein Datum: 09.10.2008 search_attribute neu : Und ein Datum: 09-10-2008 search_attribute alt : Außerdem noch ein . search_attribute neu : Außerdem noch ein - search_attribute alt : . search_attribute neu : - search_attribute alt : Hallo Punkt !!! . search_attribute neu : Hallo Punkt !!! - search_attribute alt : . search_attribute neu : - => ??? => Warum werden alle Punkte ersetzt ??? Nur die Zeilen 4 und 6 sollten ersetzt werden ! Die entscheidende Zeile ist $search_attribute =~ tr /^\.$/-/; Hier werden alle Zeilen mit einem Punkt am Anfang sowie Ende durch ein "-" ersetzt ... dachte ich zumindest. Was läuft da falsch ? Danke und Grüße, bruci164 |