Commande join : Rapprochement de deux fichiers
Bonjour,
Voici un petit exercice sur lequel je coince :
En entrée de la commande join, on a deux fichiers f1 et f2.
Code:
1 2 3 4 5
| a1;A
b2;B
d4;D
e5;E
m12;M |
Code:
1 2 3 4 5
| a1;a
b2;b
c3;c
e5;e
z26;z |
Voici ce que l'on veut obtenir en les rapprochant;
La jointure se fait sur le premier champ de chaque fichier.
enregistrement:
f1 . . . . . . . . . . f2 . . . . . . . . . . f3(sortie)
Existe . . . . . . .Existe . . . . . . . prendre les données de f2
Existe . . . . . . .N'existe pas . . prendre les données de f1
N'existe pas . .Existe . . . . . . . prendre les données de f2
En sortie, on cherche donc à avoir :
Code:
1 2 3 4 5 6 7
| a1;a
b2;b
c3;c
d4;D
e5;e
m12;M
z26;z |
voici une première approche, mais non satisfaisante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| liam@HAL42:~/projets/Test_cmd_shell_21$ ./zjoin.sh
cat xjoinf1.csv -n
1 a1;A
2 b2;B
3 d4;D
4 e5;E
5 m12;M
cat xjoinf2.csv -n
1 a1;a
2 b2;b
3 c3;c
4 e5;e
5 z26;z
join -t";" -a1 -a2 xjoinf1.csv xjoinf2.csv > xjoinf12.csv
cat xjoinf12.csv -n
1 a1;A;a
2 b2;B;b
3 c3;c
4 d4;D
5 e5;E;e
6 m12;M
7 z26;z |
Comment faire ?