Copier un fichier tout en supprimant des lignes
Fermé
Bulld0
Messages postés
4
Date d'inscription
jeudi 15 octobre 2015
Statut
Membre
Dernière intervention
16 octobre 2015
-
Modifié par Bulld0 le 15/10/2015 à 16:09
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 oct. 2015 à 13:39
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 20 oct. 2015 à 13:39
A voir également:
- Copier un fichier tout en supprimant des lignes
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié par [Dal] le 20/10/2015 à 13:40
Modifié par [Dal] le 20/10/2015 à 13:40
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