Bonjour à tous,
comme l'indique le titre, je suis débutant sous perl et je souhaiterai modifié un script en ksh pour le passer en perl. J'aurai donc voulu connaitre l'équivalent des tableau et de la commande cut sou perl. Merci de votre aide
Bonjour à tous,
comme l'indique le titre, je suis débutant sous perl et je souhaiterai modifié un script en ksh pour le passer en perl. J'aurai donc voulu connaitre l'équivalent des tableau et de la commande cut sou perl. Merci de votre aide
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
Bon j'ai trouvé ca :
Apparement si j'ai bien compris, cette commande m'écris dans le fichier2 toutes les lignes comprenant la valeur de $i qu'il trouve dans le fichier 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2perl -ne 'print if ${i}' fichier1>>fichier2
Mais ca ne marche pas des masses. En fait cette commande est dans une boucle for dont $i est la variable. Le tableau contient 10000 lignes, donc je ne devraient avoir que 10000 lignes dans mon fichiers de sortie or je monte a plusieurs millions de lignes. Pourriez vous m'aidez car je n'y connais absoluement rien en perl. Merci beaucoup
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
Bonjour.
Dit nous plutôt ce que tu veux faire, on t'expliquera comment le faire
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :
ainsi qu'à regarder la avant de poser une question.
La rubrique Perl recrute, contactez-moi.
Bonjour,
Merci d'avoir déplacer mon post. Bon alors, en fait je souhaiterai faire une jointure entre deux fichiers j'ai un premier fichier de ce type :
fichier1:
ID;info1;
ID;info1;
ID;info1;
ID;info1;
ID;info1;
ID;info1;
ID;info1;
etc...
et un deuxieme :
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
info2;info3;info4;ID;info5;info6;info7;
etc...
En fait je souhaiterai récupérer toutes les infos du deuxieme fichier dont l'ID est dans le fichier1 et en plus rajouter info1 au bout de la ligne du fichier2 correspondant. J'avais réussi un script en ksh mais qui mettais plusieurs heures à réaliser l'opération. Et on m'a dit que le langage était plus puissant donc j'aimerai réaliser cela en perl. Merci pour le coup de main
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
quelle est la clé qui permet de faire la jointure entre les 2 fichiers ?
EDIT: oups, j'avais pas vu que ID était présent dans le fichier 2 y'a moyen d'écrire ça en ksh de manière aussi efficace qu'en perl. L'avantage du ksh, c'est que ca tiendra mieux la charge si les fichiers sont gros !
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 fichier1="/chemin/fichier1" fichier2="/chemin/fichier2" # tri du 1° fichier sur la clé ID (1° champ), nécessaire pour join sort fichier1 -t";" -k1 -o ${fichier1}.sorted # tri du 2° fichier sur la clé ID (4° champ), nécessaire pour join sort fichier2 -t";" -k4 -o ${fichier2}.sorted # jointure sur les ID avec tous les champs du fichier2 + info1 join -1 1 -2 4 -t";" -o"2.1 2.2 2.3 2.4 2.5 2.6 2.7 1.2" ${fichier1}.sorted ${fichier2}.sorted > resultat.txt # suppression des fichiers temporaires triés rm -f ${fichier1}.sorted ${fichier2}.sorted
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Merci pour ton aide ca marche impeccable, par contre j'ai du le modifier un peu, j'ai supprimer le -o dans les deux commandes sort car ils ne les prennaient pas en compte. Encore un grand merci a vous deux
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
On était pas 2, j'ai juste écrit 2 messages
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Bah y'avait quand même Woufeil qu'a essayé de participer
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
Oups, j'avais po vu
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
[mode blague]Envoyé par griese
Désolé d'avoir été à l'IUT le 15/12/2006 à 09h25 (quand tu as posté ton message) et ainsi de ne pas t'avoir répondu
Et pi moi aussi j'aurais pu faire le code de MarneusCalgarXP d'abord
[/mode]
€dit : en plus c'est même pas vrai que j'aurais pu faire le code, c'est du ksh
'fin, j'aurais pu faure un équivalent Perl quoi
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :
ainsi qu'à regarder la avant de poser une question.
La rubrique Perl recrute, contactez-moi.
Rhoo, te vexe pas WoufeilEnvoyé par Woufeil
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Non mais c'est pas grave, tu t'es penché sur mon probleme et rien que pour ca je t'en remercie
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
http://mosfootball.over-blog.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager