|
L'operazione di pattern substitution consente di cercare una
certa sottostringa all'interno di una stringa (effettuando il pattern
matching con una espressione regolare) e di sostituire a questa
sottostringa un altro insieme di caratteri. L'operatore che consente di
effettuare questa operazione ha la seguente sintassi:
s/pattern di ricerca/pattern di
sostituzione/
La sostituzione del primo pattern con il secondo viene effettuata una
sola volta (sulla prima occorrenza del primo pattern) a meno che dopo il
terzo slash non si aggiunga il carattere "g" (globally)
che indica di ripetere la sostituzione su tutte le occorrenze del
pattern di ricerca e non solo sulla prima.
Modifichiamo l'esempio precedente per produrre un semplice
programmino che cerca una certa stringa all'interno di un file di input
e genera un file di output in cui ogni occorrenza della stringa è stata
sostituita da una seconda stringa inserita dall'utente.
#!/usr/local/bin/perl
print "Nome del file di input: ";
$file = <STDIN>;
chop($file);
-e $file || die "Il file non esiste!\n\n";
-T $file || die "Il file non e' un file di testo!\n\n";
print "Stringa da cercare: ";
$stringa = <STDIN>;
chop($stringa);
print "Stringa da sostituire: ";
$sost = <STDIN>;
chop($sost);
open (IN, "< $file") || die "Imp. aprire $file.\n\n";
open (OUT, "> $file.new") || die "Imp.creare $file.new\n\n";
while ($r = <IN>) {
$r =~ s/$stringa/$sost/g;
print OUT $r;
}
close(IN);
close(OUT);
|
Lezione
successiva =>
Torna
all'indice
|