Je possède un fichier texte que j’aimerais “écrémer”.
En voici un extrait :
mac-user 00:00:00:00:00:00
vlan-name = default
mac-user00:00:00:00:00:01
vlan-name = default
…
J’aimerais supprimé les lignes “vides” mais également celles contenant la chaine “vlan-name = default” comment faire pour le faire dans un script Perl ?
Merci beaucoup de votre aide
Edité le 06/10/2010 à 13:48
J’ai trouvé une solution qui fonctionne mais ce n’est peut être pas la plus propre :
open(FILE, "< AAA.txt" ) or die ("prob a l'ouverture du fichier" );
@save = <FILE>;
close(FILE);
foreach (@save)
{
$_ = "" if ($_ =~ m/vlan-name = default/);
chomp $_;
}
open(FILE, ">AAA.txt" )
or die ("prob a l'ouverture du fichier" );
foreach (@save)
{
print FILE $_."\n" if ($_);
}
close(FILE);
#****************************************************
# II) Supprime les lignes vides
#****************************************************
sub SupLigneVide {
my ($file) = @_;
my $temp = "$file.bak";
rename($file, $temp);
open NOUVEAU, '>', $file;
open ANCIEN, '<', $temp;
while(<ANCIEN>) { # ligne stockée automatiquement dans $_
next if /^\s*$/;
print NOUVEAU;
}
close ANCIEN;
close NOUVEAU;
unlink $temp;
}
&SupLigneVide("AAA.txt");