IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

utilisation de "join"


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité(e)
    Invité(e)
    Par défaut 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!!! :-(

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 662
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    bonjour,

    tes fichiers ne sont pas triés
    il n'y a pas de délimiteur commun
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    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?

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 662
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    ¿ 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...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    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.

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    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.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/11/2006, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo