Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

script perl affichant resultat different selon Cygwin/Debian

3 réponses
Avatar
michael.henneton
Bonjour =E0 tous,
Bien que je sois newbie en perl, j'ai r=E9alis=E9 un tres petit script
(first.pl) que voici:

#!/usr/bin/perl -w
use strict;
while (<>){
BEGIN{$/=3D"\n\n"};
if (/P\|1\|\d*\|\|\d*\|LE MITOUARD/){
print ;
}
}

Je lance ce script avec la commande (identique selon cygwin ou debian):
./first.pl fichierlog.txt > resultat.txt

que ce soit pour cygwin ou debian , je n'ai aucune erreur a l'execution
cependant sous cygwin, mon fichier resultat.txt n'est que la copie de
fichierlog.txt alors que sous debian mon fichier resultat.txt contient
bien les blocs de texte voulus.

Si vous aviez une piste pour corriger ce pb sous cygwin ce serait
super!!

3 réponses

Avatar
Paul Gaborit
À (at) 28 Jul 2005 01:49:50 -0700,
écrivait (wrote):
Bien que je sois newbie en perl, j'ai réalisé un tres petit script
(first.pl) que voici:

#!/usr/bin/perl -w
use strict;
while (<>){
BEGIN{$/="nn"};
if (/P|1|d*||d*|LE MITOUARD/){
print ;
}
}


Votre utilisation de BEGIN ne sert à rien. Enlevez-le et placez-la
ligne qu'il contient avant la boucle.

Je lance ce script avec la commande (identique selon cygwin ou debian):
./first.pl fichierlog.txt > resultat.txt

que ce soit pour cygwin ou debian , je n'ai aucune erreur a l'execution
cependant sous cygwin, mon fichier resultat.txt n'est que la copie de
fichierlog.txt alors que sous debian mon fichier resultat.txt contient
bien les blocs de texte voulus.


Comment les fins de lignes sont-elles codées dans vos fichiers
fichierlog.txt ? Ce codage correspond-il à ce qu'attend perl sur
chacune des plateformes ? 'cygwin' peut d'ailleurs être installé avec
deux conventions différentes...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/&gt;
Perl en français - <http://perl.enstimac.fr/&gt;

Avatar
Siddharta
Comment les fins de lignes sont-elles codées dans vos fichiers
fichierlog.txt ?
--> la j'avoue que je ne sais pas , si vous savez me dire comment
verifier cette information, en tout cas sous debian le codage des fin
de ligne semble correspondre.

je souhaite recuperer dans le fichierlog.txt tous les blocs commencant
par ce qui est dans le if et se terminant par une ligne vide.
Avatar
Siddharta
il semblerait qu'en remplacant "nn" par "n ", cela fonctionne sous
cygwin ET debian, je vais me documenter car la j'avoue que je ne
comprends pas tout. En tout cas merci beaucoup pour m'avoir indiquer la
piste de gestion des fins de lignes.