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 18/05/2007, 15h16   #1
Invité de passage
 
Inscription : janvier 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 6
Points : 3
Points : 3
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
Raoul555 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2007, 17h13   #2
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
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
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2007, 20h18   #3
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
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
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 11h01   #4
Invité de passage
 
Inscription : janvier 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 6
Points : 3
Points : 3
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.
Raoul555 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 02h44.


 
 
 
 
Partenaires

Hébergement Web