Copier un fichier tout en supprimant des lignes
Bulld0
Messages postés
4
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour à vous!
Je suis débutant en langage de programmation "Perl" et je voudrais savoir si quelqu'un sait comment, dans un script, je peux copier un fichier et son contenu mais en enlevant par la meme occasion des lignes présentes dans ce fichier qui sont comprisent entre deux phrases ?
Par exemple : je souhaite copier le fichier toto.conf ailleurs tout en supprimant les lignes comprises entre les mot BEGIN et END.
J'ai essaye avec la commande sed '/BEGIN/, /END/d' toto.conf mais ca ne fonctionne pas ! Help ! :)
Et ce qu'il me faut, c'est une suppresion et une sauvegarde du nouveau fichier (sans les lignes en gros)
Merci beaucoup de votre aide
Je suis débutant en langage de programmation "Perl" et je voudrais savoir si quelqu'un sait comment, dans un script, je peux copier un fichier et son contenu mais en enlevant par la meme occasion des lignes présentes dans ce fichier qui sont comprisent entre deux phrases ?
Par exemple : je souhaite copier le fichier toto.conf ailleurs tout en supprimant les lignes comprises entre les mot BEGIN et END.
J'ai essaye avec la commande sed '/BEGIN/, /END/d' toto.conf mais ca ne fonctionne pas ! Help ! :)
Et ce qu'il me faut, c'est une suppresion et une sauvegarde du nouveau fichier (sans les lignes en gros)
Merci beaucoup de votre aide
A voir également:
- Copier un fichier tout en supprimant des lignes
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Impossible de supprimer un fichier - Guide
- Fichier rar - Guide
1 réponse
Salut Bulld0,
Avec Perl, tu peux utiliser les modificateurs m et s pour traiter le contenu de la regexp comme matchant de multiples lignes sur une seule et matcher BEGIN et END et les caractères de début et fin de lignes sur lesquelles ils sont autant de fois que nécessaire pour faire tes substitutions.
Par exemple, comme cela :
Dal
Avec Perl, tu peux utiliser les modificateurs m et s pour traiter le contenu de la regexp comme matchant de multiples lignes sur une seule et matcher BEGIN et END et les caractères de début et fin de lignes sur lesquelles ils sont autant de fois que nécessaire pour faire tes substitutions.
Par exemple, comme cela :
#!/usr/bin/perl
use strict;
use warnings;
my $st = <<EOT;
Bonjour à vous!
BEGIN
Je suis débutant en langage de programmation "Perl" et je voudrais savoir si quelqu'un sait comment, dans un script, je peux copier un fichier et son contenu mais en enlevant par la meme occasion des lignes présentes dans ce fichier qui sont comprisent entre deux phrases ?
END
Par exemple : je souhaite copier le fichier toto.conf ailleurs tout en supprimant les lignes comprises entre les mot BEGIN et END.
BEGIN
J'ai essaye avec la commande sed '/BEGIN/, /END/d' toto.conf mais ca ne fonctionne pas ! Help ! :)
Et ce qu'il me faut, c'est une suppresion et une sauvegarde du nouveau fichier (sans les lignes en gros)
END
Merci beaucoup de votre aide
EOT
;
while ($st =~ m/(.*?)(^BEGIN.*?^END$)(.*)/msg) {
$st = $1 . $3;
}
print "$st";
Dal