[PERL] supprimer commentaire
Résolu
wafa_o
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
wafa_o Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
wafa_o Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
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.
A voir également:
- [PERL] supprimer commentaire
- Supprimer rond bleu whatsapp - Guide
- Supprimer commentaire word - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Fichier impossible à supprimer - Guide
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) ;
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 ?
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!
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
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);
}
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.
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 ;-)
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 ;-)