1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#!/usr/bin/perl
sub deleteLine; my $filename = "fichier.txt";
deleteLine "keyword";
# recherche et supprime la ligne si elle contient le parametre sub deleteLine { $keyword = shift; $old = $filename; $new = "$filename.tmp.$$"; $bak = "$filename.bak";
open(OLD, "< $old") or die "can't open $old: $!"; open(NEW, "> $new") or die "can't open $new: $!";
while (<OLD>) { ($n) = split(/\s*\|\s*/); print NEW if $n ne $keyword; }
close(OLD) or die "can't close $old: $!"; close(NEW) or die "can't close $new: $!"; rename($old, $bak) or die "can't rename $old to $bak: $!"; rename($new, $old) or die "can't rename $new to $old: $!"; } |