Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[PERL]Saut de ligne

Zep3k!GnO, le jeudi 10 novembre 2005 à 14:31:17 
 Signaler ce message aux modérateurs

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

bref vous voyez le truc !
Et ce que je veux faire c'est de supprimer les 2 sauts de lignes avant mes tags <RENV> , alors dans mon script j'ai essayé
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;


Et ça ne marche pas... pourquoi ? !

Merci.

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

1

mamiemando, le jeudi 10 novembre 2005 à 18:07:24

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

Répondre à mamiemando

2

lami20j, le jeudi 10 novembre 2005 à 22:53:00

Salut,
Si tu veux supprimer les 2 sautes de lignes tu obtiens quelque chose comme ça

blahblahblahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah
blahblahblahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah
blahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
blahblahblah<RENV blahblah></RENV>blahblahblahblahblahblahblahblah
iblahblahblahblahblah
C'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

Répondre à lami20j

3

Zep3k!GnO, le lundi 14 novembre 2005 à 09:28:43

Okay bin merci à tous les 2 je vais tester ça . . . et je vous dit :D

Un grand merci.


Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

Répondre à Zep3k!GnO

4

Zep3k!GnO, le lundi 14 novembre 2005 à 10:20:59

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 . . . :(
Si vous avez d'autres idées . . .

Merci

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

Répondre à Zep3k!GnO

5

mamiemando, le lundi 14 novembre 2005 à 10:30:03

Essaye de debugger ta regexp en l'allongeant petit à petit pour voir où elle bloque. Désolé mais je ne peux pas faire de perl actuellement pour t'aider :/

Répondre à mamiemando

6

Zep3k!GnO, le lundi 14 novembre 2005 à 11:47:05

Désolé mais je ne peux pas faire de perl actuellement pour t'aider :/
Y'as trop pas de soucis :D

Mais c'est tout de même dingue , même un simple :

s/\n\n/saute!/g;

Ca ne fonctionne pas...
c'est Con car du coups je suis obligé de réouvrir le ficheir resultant avec mon Ultra Edit et de faire un povre :
^p^p<RENV <--remplacer par --> <RENV

Et la j'ai pô de soucis ... c'est beuuuute non ?!

Merci

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

Répondre à Zep3k!GnO

7

mamiemando, le lundi 14 novembre 2005 à 14:45:48

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

http://www.vim.org/download.php

:%s/.../.../g
:wq

Bonne chance

Répondre à mamiemando

8

Zep3k!GnO, le lundi 14 novembre 2005 à 15:20:34

Arf merci c'est CoOl mamiemando . . . !
ouais ca devrait aller , là j'ai vu que ça passe pas trop crade .. hi hi ..

En tous cas merci de ton aide c'est sympa ;P

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

Répondre à Zep3k!GnO

9

lami20j, le lundi 14 novembre 2005 à 18:36:56

Bonsoir,

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 . . . :(
Si vous avez d'autres idées . . .


Alors en ce cas voilà le script, pareil il affiche le résultat sur STDOUT.

Si tu veux modifier le fichier sur place et tu ne sais pas le faire dit le.

Voilà le script ( faire une boucle et traiter ligne par ligne ce n'est pas laide)

#! /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]$

Répondre à lami20j

10

Repen07, le dimanche 18 février 2007 à 00:08:34

Salut lami20j, j'ai vu tes participations sur le forum, je voudrais bien avoir ton aide sur un script plus ou moins bête, mais je n'en sors tjrs pas, car je suis encore débutant
en fait, l'objectif est de faire un script en perl, pour comparer deux fichiers textes de grande taille, en passant par les tables de hachage, c'est une notion que je ne saisis pas trop pour le moment. il y a aussi l'alternative de passer par des tableaux en parcourant les deux fichiers, bref, c ma vision des choses!

Répondre à Repen07

12

 lami20j, le lundi 19 février 2007 à 22:58:31
  • +1

Regarde ici fichiers texte en perl lami20j

Répondre à lami20j

11

lami20j, le dimanche 18 février 2007 à 09:01:49

Salut,

j'ai besoin de plus de détails.
"grande taille" ça veut dire?!...
et pour comparer les 2 fichiers, que veux tu obtenir comme résultat?

En bref, j'eai besoin de
Les Entrées(les fichiers) -> Que veut tu obtenir en sortie (le résutat)

Sous linux il y a la commande diff
lami20j

Répondre à lami20j
[Perl] Saut de ligne + extraction fichiers (Résolu) Bonjour, J'ai besoin de faire une extraction de certaines lignes dans plusieurs fichiers (qui ont tous la même extension), j'ai déjà un petit script, mais je voudrais me débarrasser du caractère de saut de ligne qui ressort dans mon fichier résultat,... www.commentcamarche.net/forum/affich-2842990-perl-saut-de-ligne-extraction-fichiers
[excel 2000] saut de ligne (Résolu) Bonjour, Dans une formule EXCEL, du style ="titre "&"blabla" comment fait-on pour insérer un saut de ligne entre titre et blabla et ainsi obtenir : titre blabla J’ai essayé ="titre "&car(10)&"blabla" et ="titre "&car(13)&"blabla" mais ça ne marche... www.commentcamarche.net/forum/affich-1564228-excel-2000-saut-de-ligne
[PSPad] Expressions régulières saut de ligne (Résolu) Bonjour, La recherche dans PSPad me permet de trouver -et remplacer- des expressions en début de ligne ou en fin de ligne. Mais comment peut-on faire pour "matcher" une expression qui s'étale sur deux lignes ? Exemple, avec un tiret de césure : Mon... www.commentcamarche.net/forum/affich-2760000-pspad-expressions-regulieres-saut-de-ligne
Les paiements en ligneLes moyens de paiement en ligne Renouveler son nom de domaine, acheter des fournitures de bureau, payer ses liens sponsorisés, acheter des billets de train ou d’avion pour ses voyages d’affaires… un chef d’entreprise a mille et une bonnes raisons... www.commentcamarche.net/faq/sujet-9668-les-paiements-en-ligne
[Windows] Démarrer/arrêter un service en ligne de commandeL'outil netsh (netsh.exe) permet d'automatiser le démarrage ou l'arrêt d'un service grâce à la ligne de commande suivante : Pour démarrer un service : Net start nom_du_service Pour arrêter un service : Net stop nom_du_service Cela nécessite les... www.commentcamarche.net/faq/sujet-2739-windows-demarrer-arreter-un-service-en-ligne-de-commande
Comment lire un fichier ligne par ligneComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier... www.commentcamarche.net/faq/sujet-5027-comment-lire-un-fichier-ligne-par-ligne
[JAVA] saut de ligne help^^!!!! (Résolu)Bonjour!! Ma question va sembler bête pour tout ce qui programme ne java mais bon tant pis. Je commence le java depuis ce matin et je n'arrive pas à faire un saut de ligne... Voici mon code : ... www.commentcamarche.net/forum/affich-6598538-java-saut-de-ligne-help
Petit saut de ligne en HTMLBonjour, Je voulais savoir si l'on pouvais attribuer une taille spécifique à un ? En fait, je souhaite faire un saut de ligne mais plus petit qu'un réel saut de ligne... J'ai essayé mais il ne prend pas le font en... www.commentcamarche.net/forum/affich-138477-petit-saut-de-ligne-en-html
(sed/Perl) supprimer des lignes d'un fichier (Résolu)Bonjour, comment supprimer les 2 premiers lignes d'un fichier et les 2 derniéres lignes d'un fichier , sachant que chaque fichier peuvent avoir un nombre de lignes différent de l'autre. Merci d'avance, Cordialement. www.commentcamarche.net/forum/affich-2524548-sed-perl-supprimer-des-lignes-d-un-fichier
Perl - Les fichiersLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles... www.commentcamarche.net/contents/perl/perlfich.php3
Publicité en ligneIntroduction à la publicité en ligne La publicité en ligne est un moyen permettant aux webmasters de rentabiliser financièrement leur site internet et de leur permettre de couvrir les coûts d'hébergement et de noms de domaine. Il s'agit également... www.commentcamarche.net/contents/web/publicite-advertising.php3
Introduction aux courants porteurs en ligne (CPL)Introduction aux CPL On retient sous l'appellation CPL « Courants Porteurs en Ligne » toute technologie qui vise à faire passer de l'information à bas débit ou haut débit sur les lignes électriques en utilisant des techniques de modulation... www.commentcamarche.net/contents/cpl/cpl-intro.php3