Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2007, 14h55   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 10
Points : 10
Par défaut join - jointure de 2 fichiers csv et resultat dependant du range de clefs utilisees?

Bonjour,

J'utilise la commande join pour effectuer une jointure entre 2 fichiers csv.
La jointure se fait par rapport à la 1ere colonne de ces 2 fichiers.

exemple1

fichier1.csv
Code :
1
2
3
4
5
6
7
8
 
6,marie
7,amelie
9,nicolas
18,sandra
21,mathieu
22,cindy
23,julien
fichier2.csv
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
0,comptable
1,control qualite
2,dba
3,patron
4,commercial
5,secretaire
6,administrateur
7,technicien
8,patisssier
9,boulanger
10,plombier
11,electicien
12,commercial
13,instituteur
14,pharmacien
15,chirurgien
16,directeur
Code :
1
2
 
join -t ',' -j1 1 -j2 1 -o 1.2,2.2 fichier1.csv fichier2.csv > fichier3.csv ; cat fichier3.csv

J'obtiens bien:
Code :
1
2
3
4
 
marie,administrateur
amelie,technicien
nicolas,boulanger
exemple2

Maintenant, avec les fichiers

fichier1.csv
Code :
1
2
3
4
5
6
7
8
 
116,marie
880,amelie
880,nicolas
6261,sandra
8687,mathieu
11111,cindy
99999,julien
fichier2.csv
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
0,comptable
1,control qualite
2,dba
3,patron
4,commercial
5,secretaire
6,administrateur
7,technicien
8,patisssier
9,boulanger
880,plombier
900,electicien
100,commercial
500,instituteur
1000,pharmacien
10000,chirurgien
11111,directeur
Même commande
Code :
1
2
 
join -t ',' -j1 1 -j2 1 -o 1.2,2.2 fichier1.csv fichier2.csv > fichier3.csv ; cat fichier3.csv
Je n'obtiens rien?

Je m'attendais à avoir
Code :
1
2
3
4
 
amelie,plombier
nicolas,plombier
cindy,directeur
La seule différence est pourtant seulement le range des clefs utilisées pour la jointure. Je croyait que la seule containte était d'avoir des clefs ordonnées? Y a-t-il une containte supplémentaire sur les clefs de jointur epour utiliser la commande join?
bladerunners est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 15h19   #2
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
Ceci est lié au trie des informations dans vos fichiers :
fichier1.csv
Code :
1
2
3
4
5
6
7
11111,cindy
116,marie
6261,sandra
8687,mathieu
880,amelie
880,nicolas
99999,julien
fichier2.csv
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0,comptable
10000,chirurgien
1000,pharmacien
100,commercial
11111,directeur
1,control qualite
2,dba
3,patron
4,commercial
500,instituteur
5,secretaire
6,administrateur
7,technicien
880,plombier
8,patisssier
900,electicien
9,boulanger
Le resultat de votre commande
Code :
join -t ',' -j1 1 -j2 1 -o 1.2,2.2 fichier1.csv fichier2.csv
donne le resultat souhaité
Code :
1
2
3
cindy,directeur
amelie,plombier
nicolas,plombier
__________________
Signé : Capitaine Jean-Luc Picard
argoet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h16   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 27
Points : 10
Points : 10
Merci beaucoup Argoet
bladerunners est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h37.


 
 
 
 
Partenaires

Hébergement Web