Hallo,
ich habe angefangen, mich ein wenig mit Perl zu beschäftigen, weil es wohl für Textbearbeitung geeignet sein soll.
Ich habe jetzt mein erstes Progrämmchen geschrieben, das folgendes tun soll.
Ich habe eine Datei, in der steht am Anfang jeder Zeile eine Zahl und dann folgt ein Leerzeichen. Ich möchte jetzt anstelle des Leerzeichens ein Tab haben.
Mein Programm dazu sieht so aus:
Das Problem ist jetzt, dass zum Beispiel eine Originalzeile so aussieht:
1 Natalizumab 1 149
und er macht daraus:
11 Natalizumab 1 149
Das heißt, der Tab wird richtig gesetzt, aber er hat die Zahl am Anfang doppelt.
Kann mir vielleicht jemand sagen, was der Fehler ist?
Oder geht sowas sowieso irgendwie einfacher??
Danke schonmal!
ich habe angefangen, mich ein wenig mit Perl zu beschäftigen, weil es wohl für Textbearbeitung geeignet sein soll.
Ich habe jetzt mein erstes Progrämmchen geschrieben, das folgendes tun soll.
Ich habe eine Datei, in der steht am Anfang jeder Zeile eine Zahl und dann folgt ein Leerzeichen. Ich möchte jetzt anstelle des Leerzeichens ein Tab haben.
Mein Programm dazu sieht so aus:
Code:
use strict;
open(LESEN,"u:/Eigene Dateien/myWorkspace/Perl-tools/test.txt")
or die "Fehler beim Öffnen von 'test.txt': $!\n";
open(SCHREIBEN,"> neu.txt")
or die "Fehler beim Öffnen von 'neu.txt': $!\n";
while(defined(my $i = <LESEN>)) {
if ($i =~ /[\d]{0,3} /) {
my $found = $&;
$found =~ s/ /\t/; //hier ersetze ich in dem gefundenen Ausdruck das Leerzeichen durch ein Tab
$i =~ s/$&/$found/; //hier ersetze ich dann den gefundenen Ausdruck durch den eben veränderten
print SCHREIBEN $i; //Ausgabe in neue Datei
}
}
close(LESEN);
close(SCHREIBEN)
or die "Fehler beim Schließen von 'neu.dat': $! \n"
Das Problem ist jetzt, dass zum Beispiel eine Originalzeile so aussieht:
1 Natalizumab 1 149
und er macht daraus:
11 Natalizumab 1 149
Das heißt, der Tab wird richtig gesetzt, aber er hat die Zahl am Anfang doppelt.
Kann mir vielleicht jemand sagen, was der Fehler ist?
Oder geht sowas sowieso irgendwie einfacher??
Danke schonmal!