script perl affichant resultat different selon Cygwin/Debian
3 réponses
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!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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...
À (at) 28 Jul 2005 01:49:50 -0700,
michael.henneton@laposte.net é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/>
Perl en français - <http://perl.enstimac.fr/>
À (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...
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.
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.
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.
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.
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.
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.