[PERL] supprimer commentaire
Résolu
wafa_o
Messages postés
112
Statut
Membre
-
wafa_o Messages postés 112 Statut Membre -
wafa_o Messages postés 112 Statut Membre -
Bonjour,
Est ce que quelqu'un sait comment supprimer les commentaires dans un fichier avec les regexp.
Je voudrais une ligne de commande du genre :
$tab[$_] =~ ....
où $tab est un tableau, j'y met chaque ligne de mon fichier.
Merci d'avance.
Est ce que quelqu'un sait comment supprimer les commentaires dans un fichier avec les regexp.
Je voudrais une ligne de commande du genre :
$tab[$_] =~ ....
où $tab est un tableau, j'y met chaque ligne de mon fichier.
Merci d'avance.
Configuration: Windows XP Internet Explorer 6.0
14 réponses
-
Je pense avoir trouvé.
open(D ,$file ) or die "ERREUR ! \n"; while (my $line = <D> ) {
if ($line !~ /^#/) {
push @tableau , $line
}
}
close(D) ; -
-
-
j'ai un fichier. Je place chaque ligne de mon fichier dans un tableau. Je souhaite supprimer toutes les lignes commencant par #. Ou placer toutes les lignes de mon fichier autre que des commentaires dans mon tableau.
Est ce que c'est plus claire theMan ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
substr(exemple,0,1), vous obtenez comme résultat "e". Extraire un caractère à partir de la position 0
Pour chaque ligne lu dans ton fichier
Lire le premier caractère avec substr(ligne,0,1)
si ce caractère égal è #
palcer la ligne dans le tableau
Lire ligne suivante.
Mezaine! -
ouvre ton fichier et met-le dans un tableau (faire un open et l'affecté à une variable du genre @fichier)
et ensuite fait un foreach et (selon si tu l'as ouvert en rw ou en r) supprime les lignes que tu veux ou bien compose un nouveau fichier avec les lignes de ta condition.
A+
Dave -
Merci mais ce n'est pas du tout ce que je souhaite avoir en sortie. Enfin je comprends pas trop ce que tu fais.
-
-
-
Tu veux faire qqe chose du genre ?
main();
sub rtrim($) # Right trim function to remove trailing whitespace
{
my $string = shift;
$string =~ s/\#.*?$//g;
return $string;
}
sub main()
{
open (FILE,"fichier_avec_commentaire.txt");
@z_fichier = <FILE>;
foreach $ligne (@z_fichier) # on boucle sur chaque ligne du tableau jusqu'au EOF
{
$resultat = rtrim($ligne);
print "pas de commentaire: $resultat\n";
}
close (FILE);
} -
Merci Davlar, j'ai trouvé ce que je voulais avoir en sortie.
J'ai ecris le bout de code au dessus.
En tout cas merci pour ton aide. -
Salut,
tu parles de celui ci
tu peux faire comme ça ;-)lami20j@debian:~/trash$ cat fichier.txt # ligne 1 ligne 2 # ligne 3 #ligne 4 ligne 5 lami20j@debian:~/trash$ cat ccm.pl #!/usr/bin/perl # use warnings;use strict; my $file="fichier.txt"; open D ,$file or die "E/S : $! \n"; my @tableau = grep { ! /^#/ } <D>; print for @tableau; close D ; __END__ lami20j@debian:~/trash$ perl ccm.pl ligne 2 ligne 5 lami20j@debian:~/trash$Il y a plusieurs façons de le faire en Perl, à toi de choisir celle qui te conviens le plus ;-)
-
Re,
voici une version plus compacte ;-) (pour Linux)lami20j@debian:~/trash$ cat ccm.pl #!/usr/bin/perl # use warnings;use strict; my @tableau = grep { ! /^#/ } `cat fichier.txt`; print for @tableau; __END__
-