So che questo tipo di domande sono già state fatte molte volte. Il motivo per cui vengo di nuovo qui è che mi sembra di aver perso qualcosa di semplice e fondamentale.Sostituire la ricerca multilinea con Perl
È possibile rendere questo tipo di routine di sostituzione della ricerca migliore. Ad esempio senza aprire lo stesso file due volte. Anche i consigli relativi alla velocità sono ben accetti.
Si noti che questo funziona con corrispondenze multilinea e sostituisce anche stringhe multilinea.
#!/bin/perl -w -0777
local $/ = undef;
open INFILE, $full_file_path or die "Could not open file. $!";
$string = <INFILE>;
close INFILE;
$string =~ s/START.*STOP/$replace_string/sm;
open OUTFILE, ">", $full_file_path or die "Could not open file. $!";
print OUTFILE ($string);
close OUTFILE;
Sembra che tu stia cercando di modificare il file sul posto. Cioè, aprilo per leggere e per scrivere. È corretto? –
Sì, modifica del file in posizione. Questo è il caso d'uso più comune per me. – user44556