|
|
|
|
Bonjour à tous, je comprens pas pourquoi mais j'ai un vieu problème , cça fait pas mal débutant mais bon , j'comprends pas :
mon fichier:
blahblahblahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah blahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah
s/& #0D;& #0A;& #0D;& #0A;\<RENV/<RENV/g; //les & et # sont décollés pour que le site puissent afficher ces caractères Unicode... OU s/\n\n\<RENV/<RENV/g;
Je pense que le \ devant le '<' est en trop, ce qui donne :
s/\n\n<RENV/<RENV/g; En tout cas sous vi ça marche (très pratique cette petite bête pour débuger les regexp). Technique à deux balles de la mamie : D'une manière générale quand un regexp ne marche pas, essaye de la reduire au minimum, de voir si elle marche et de la rallonger progressivement pour voir d'où vient le pb. Bonne chance |
Salut,
blahblahblahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah blahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah iblahblahblahblahblahC'est ça que tu veux obtenir. En ce cas la réponse de mamiemando est suffisante. En revanche si tu veux que ton fichier soit blahblahblahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah blahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah iblahblahblahblahblah Tu n'as qu'un seul saute de ligne à supprimer (pas 2)
#! /usr/bin/perl -w
$/=" ";
open FLIRE,'Zep3k!GnO.txt' or die "Impossible d'ouvrir le fichier : $!\n";
while (<FLIRE>){
s/\n(?=<RENV)//; # teste avant, ne consomme pas de texte donc plus rapide
print;
}
Le scrip ne fait que lire et afficher à l'écran. Pour écrire il faut ajouter encore quelque lignes. Ou en ligne de commande. Ici le fichier est modifé sur place et l'original est sauvegardé. perl -pi.orig -e 's/^\n$//' Zep3k\!GnO.txt |
Hélas c'est bien la prmièe forme que tu exposes lami20j que je veux obtenir et ce que mamiemando m'a mis ne fonctionne pas, j'avais déjà essayé comme ça . . . :(
|
Désolé mais je ne peux pas faire de perl actuellement pour t'aider :/
|
Sinon il y a possibilité de faire une boucle pour traiter ligne par ligne mais c'est vrai que c'est très laid... Enfin sinon tu le fais avec la regexp que je t'ai filé pour vi et c'est bon
:%s/.../.../g :wq Bonne chance |
Bonsoir,
#! /usr/bin/perl -w
$/=" ";
open FLIRE,'Zep3k!GnO.txt' or die "Impossible d'ouvrir le fichier : $!\n";
while (<FLIRE>){
s/\n\n<RENV/<RENV/;
print;
}
Et le résultat [lamitest@localhost bin]$ cat Zep3k\!GnO.txt blahblahblahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah blahblahblah <RENV blahblah></RENV>blahblahblahblahblahblahblahblah iblahblahblahblahblah [lamitest@localhost bin]$ perl suppr_ligne_vide1.pl blahblahblahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah blahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah iblahblahblahblahblah [lamitest@localhost bin]$
|