-
utilisation de "join"
Bonjour, j'ai deux fichiers:
fichier X
01 : 6372714 : centre hospitalier de martigues,13698,martigues : fournitures : adapte : 04/01/2008 : 13 :482953015-13
01 : 6372990 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :411304173-23
01 : 6372990 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :945752137-1624
fichier Y:
6475 ville de marmande,47207,marmande
644 centre hospitalier de martigues,13698,martigues
et je veux fusionner les deux fichiers comme ceci:
01 : 6372714 : 644 :centre hospitalier de martigues,13698,martigues : fournitures : adapte : 04/01/2008 : 13 :482953015-13
01 : 6372990 :6475: ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :411304173-23
01 : 6372990 : 6475 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :945752137-1624
j'ai essayé avec :
join -12 -23 fichier Y fichierX|less mais sa marche pas et je ne comprend pas pourquoi, quelqu'un peut m'aider svp!!! :-(
-
bonjour,
tes fichiers ne sont pas triés
il n'y a pas de délimiteur commun
...
?
-
j'ai reformuler mon fichier , donc les deux fichiers ne sont pas triés et sont séparés par des ":"
fichier 1:
01 : 6372714 : centre hospitalier de martigues,13698,martigues : fournitures : adapte : 04/01/2008 : 13 :482953015
01 : 6372990 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :411304173
01 : 6372990 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :945752137
01 : 6372990 : ville de marmande,47207,marmande : fournitures : autres : 04/01/2008 : 47 :333822245
01 : 6381725 : commune de carrieres sous poissy,78955,carrieres sous poissy : fournitures : adapte : 14/01/2008 : 78 :785428822
01 : 6381725 : commune de carrieres sous poissy,78955,carrieres sous poissy : fournitures : adapte : 14/01/2008 : 78 :338825672
fichier 2:
000001 : centre hospitalier de martigues,13698,martigues
000002 : ville de marmande,47207,marmande
000003 : ville de marmande,47207,marmande
000004 : ville de marmande,47207,marmande
000005 : commune de carrieres sous poissy,78955,carrieres sous poissy
000006 : commune de carrieres sous poissy,78955,carrieres sous poissy
et je veux fusionner les deux fichiers en prenant la clé commune est le 2eme champ comme ceci: join -12 -23 fichier1 fichier2 mais sa marche pas !! pouvez vous m'aider svp?
-
¿ bof bof
ce que tu veux faire ne me paraît pas possible en shell.
une solution un peu lourde, mais plus facile, serait de mettre les fichiers dans des tables d'une base de données, et utiliser une fonction 'jointure' en SQL...
?
-
Je pense que ca doit etre faisable en shell (il est possible de faire plein plein de chose en shell)
sauf que je ne vois pas la clef commune dans ton deuxieme exemple.
Quel est la taille des tes fichiers ?
Sinon je sais que sqlite dispose d'une fonction d'importation simple. Il n y a pas besoin d'installer quoi que ce soit et tu peux faire des requetes depuis ton shell.
-
re,
la clé commune est le 2ème champs , c'est à dire:
centre hospitalier de martigues,13698,martigues
ville de marmande,47207,marmande
ville de marmande,47207,marmande
ville de marmande,47207,marmande
commune de carrieres sous poissy,78955,carrieres sous poissy
commune de carrieres sous poissy,78955,carrieres sous poissy
ce sont dans les deux fichiers, par contre les fichiers sont tres grand, plus de 10000 lignes.
un collègue m'a proposé de faire autrement, au lieu d'attribuer des clés pour le 2eme fichier et le croiser avec le premier , je prends le fichier nomé "fichier1" et j'affecte des clé aux donneur d'ordre (le champ n° 3 du fichier1) mais avec php !!! par contre je ne sais pa comment, moi generalement je travaille avec PHP et BDD (tables) sur windows (en utilisant Wamp server, phpadmin) mais sur linux, je ne sais rien car je n'ai pas des tables mais des fichiers plats!! comme l'exemple fichier1.