Textteile ersetzen

kataga

Grünschnabel
Ich wollte das Problem eigentlich mit einer split Funktion angehen, leider bisher ohne Erfolg.

Das Problem:

Ich lese zuerst ein Text File ein:

my @FILE = `cat file`;

In dem File befindet sich ein TAG "#REPLACE"

Alles was hinter dem FLAG steht soll gelöscht werden und gegen den Inhalt eines weiteren Files (file2)ersetzt werden.

Schon mal danke für die Hilfe
 
Hi kataga! :)

Erstmal, hat es einen bestimmten Grund, dass du mithilfe der Backticks und dem Programm "cat" eine Datei zeilenweise einliest? Falls nicht, würde ich das lieber perl-intern mit open();

Ist einfach ne sichere Lösung.

Was dein Suchen und ersetzen angeht, da dürfte dich der s/// Operator interessieren.

Ich würds dann so lösen, dass ich zunächst die eine Datei öffne und mithilfe von join() das File in eine Variable zusammen zu packen. Dann mit

Code:
$datei =~ s/#REPLACE.*/#REPLACE/m;

alles nach "#REPLACE" mit nichts ersetzen.

Danach dann die andere Datei öffnen und dann wieder mit join() aus den Fragementen ein großes Teil produzieren:

Code:
my $neuerInhalt = join("", $alterInhalt, @file2);

Und dann einfach $neuerInhalt in ne Datei zurückschreiben und fertig ist die Laube :)

Gruß,
Sven
 

Neue Beiträge

Zurück