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

Shell et commandes GNU Discussion :

Extraire lignes dont le debut est identique


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Extraire lignes dont le debut est identique
    Bonjour,

    J'ai deux gros fichiers de 20.000.000 lignes environ.

    Dans le premier, j'ai un champs par ligne.
    Dans le second, 2 champs.

    Je souhaite obtenir les lignes de mon second fichier dont le champs 1 est présent dans mon premier fichier.

    Vu le nombre important de lignes, je n'arrive pas à faire un script suffisament performant.

    Avez-vous des idée?

    Raoul555

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Un peu plus de précision ne serait pas inutile

    Pour commencer, je dirais qu'il semble évident qu'il faille TRIER ! L'ordre d'une recherche dichotomique ( qsort ) est de n log n par rapport à une recherche linéaire d'ordre n, il n'y a pas photo

  3. #3
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Citation Envoyé par Raoul555
    Je souhaite obtenir les lignes de mon second fichier dont le champs 1 est présent dans mon premier fichier.

    join

    http://man.developpez.com/man1/join.1.php


    $ cat fic_1
    1
    2
    4


    $ cat fic_2
    1 fic2_lig1
    2 fic2_lig2

    3 fic2_lig3
    4 fic2_lig4
    5 fic2_lig5

    $ join fic_1 fic_2
    1 fic2_lig1
    2 fic2_lig2
    4 fic2_lig4
    Loi de Murphy:
    La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
    La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
    Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Merci BlaireauOne!

    C'est exactement ce que je cherchais.

    J'ai perdu beaucoup de temps à bricoler des trucs, mais quand on connait les bons outils, c'est quand même vachement plus facile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Défi N°1 : Génération des ensembles de nombre dont la somme est identique
    Par millie dans le forum Défis langages fonctionnels
    Réponses: 143
    Dernier message: 08/02/2018, 19h45
  2. Réponses: 2
    Dernier message: 27/02/2008, 19h45
  3. Suppression d'une ligne dont la cellule est vide
    Par dolphinus27 dans le forum Excel
    Réponses: 5
    Dernier message: 12/09/2007, 12h18
  4. Réponses: 5
    Dernier message: 24/07/2006, 15h01
  5. Réponses: 14
    Dernier message: 01/12/2004, 16h20

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