Hi!
ich möchte bei jeder Zeile prüfen, ob ein regulärer Ausdruck passt, wenn er passt, möchte ich am Ende dieser Zeile etwas anhängen
wenn der reguläre Ausdruck bei keiner Zeile zutrifft, möchte ich am Ende etwas einfügenDu bist aber auch sparsam mit Auskünften...
Wo kommen die Daten her? Aus einer Datei? Dann ist while (<FILEHANDLE>) für ein zeilenweises Einlesen doch die bessere Wahl:
open (DATEI, ">>blubb.blabb") or die "Open failed: $!";
while (<DATEI>) {
print DATEI "$_ und das was Du einfügen willst\n" if (/PATTERN/);
}
close DATEI;Sollte eine neue Datei erstellt werden, mit den Änderungen, dann so:
open (DATEI, "originaldatei.foo") or die "Open DATEI failed: $!";
open (OUT, ">>neuedatei.bar") or die "Open OUT failed: $!";
while (<DATEI>) {
print OUT "$_ und das was Du einfügen willst\n" if (/PATTERN/);
}
close OUT;
close DATEI;
sorry, dass das zuwenig Informationen waren!
bis jetzt habe ich folgenden Code
my @stdin = <STDIN>;
my $i;
for ($i = 0; $i < @stdin; $i++){
$stdin[$i] = $stdin[$i] . ",WORT2\n" if($stdin[$i] =~ /[1]*#{0,0}\bWORT1\b/ );
}
$stdin[$i] = qq~WORT1 WORT2\n~;
...
for ($i = 0; $i < @stdin; $i++){
print $stdin[$i];
}
Danke!
\t ↩︎