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
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
Bonjour.
Dit nous plutôt ce que tu veux faire, on t'expliquera comment le faire![]()
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![]()
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 2y'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 !
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
Partager