Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Extraire lignes dont le debut est identique

Raoul555, le vendredi 18 mai 2007 à 14:58:52
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
Répondre à Raoul555  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
dubcek, le vendredi 18 mai 2007 à 16:05:25
Est-ce que dans le fichier 1 toutes les lignes sont différentes ou peut-il y avoir des lignes identiques ?
Répondre à dubcek

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Raoul555, le vendredi 18 mai 2007 à 16:10:47
Oui, toutes les lignes sont identiques dans les deux fichiers
Répondre à Raoul555

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le vendredi 18 mai 2007 à 16:18:34
Salut,

je n'ai pas testé
j'ai supposé que le délimitéur de champs et un espace
#!/usr/bin/perl
use strict;use warnings;

open LIRE,"fic2.txt"
         or die "E/S : $!\n";

while( my $l = <LIRE>){
    print if grep { /${\( (split " ",$l)[0] )}/ } `cat fic1.txt`;
}

lami20j
Répondre à lami20j

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le vendredi 18 mai 2007 à 16:32:38
Voici le test (j'ai crée 2 fichiers bidon 29 millions lignes et 40 millions lignes) - j'ai chronométré - 41 secondes
http://cjoint.com/?fsqEIjdcSG lami20j
Répondre à lami20j

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Raoul555, le vendredi 18 mai 2007 à 16:43:23
Je suis impressioné. Mais chez moi, cela ne marche pas. J'ai un message "Out of memory" avec 16Go de Ram!

Au fait, je ne connais pas trop le perl. Mon séparateur est le pipe. C'est bien cela alors?

#!/usr/bin/perl

open LIRE,"SneAndHrncFile.unl" or die "E/S : $!\n";

while( my $l = <LIRE>){
    print if grep { /${\( (split "|",$l)[0] )}/ } `cat EnabledVouchers.txt`;
}
Répondre à Raoul555

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lami20j, le vendredi 18 mai 2007 à 16:48:58
J'ai un message "Out of memory" avec 16Go de Ram!
Moi je n'ai que 256 Mo sur mon pc?!

Bizarre!! Je vais voir à la maison (à vrai dire j'aurais aimer faire un test réel avec tes fichiers)
lami20j
Répondre à lami20j

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 Raoul555, le samedi 19 mai 2007 à 10:58:43
On m'a donné la solution. J'ai perdu beaucoup de temps avec cela, pourtant c'est tout simple :

join -j 1 -t \| Fichier1 Fichier2

Merci lami20j de ton aide.
Répondre à Raoul555

Résultats pour Extraire lignes dont le debut est identique

[PERL]- Extraire lignes d'un fichier à partir (Résolu) Bonjour, je suis nouveau sur ce forum et je dois pour mon stage extraire les "nb" derinères lignes d'un fichier, les trier et les mettre dans un autre fichier. En gros je voudrais faire cela en perl: tail -$nb $fichier | sort -k 5 -u | sed -e... www.commentcamarche.net/forum/affich-5845343-perl-extraire-lignes-d-un-fichier-a-partir
[sh] Extraire une ligne d'un fichier (Résolu) Bonjour à tous J'aimerais extraire une ligne d'un fichier texte. J'ai essayé avec : head -X fichier.txt | tail -1 Le problème est que j'aimerai qu'il me renvoie une chaine vide si la ligne n'existe pas (ici renvoie... www.commentcamarche.net/forum/affich-2654080-sh-extraire-une-ligne-d-un-fichier
Excel : Extraction à partir d'une liste (Résolu) Bonjour le forum, J'ai une base monotable sur excel. Je souhaite travailler sur une partie de cette table. Comment puis je faire l'extraction en gardant les lignes dont j'ai besoin ? (Ex. Sur une base de société, je souhaite extraire... www.commentcamarche.net/forum/affich-3616884-excel-extraction-a-partir-d-une-liste

Résultats pour Extraire lignes dont le debut est identique

Extraire le son d'une vidéoVous avez un fichier vidéo dont vous voulez récupérer la bande-son ? Extraire en WAV avec VLC Pour ce faire, il faut d'abord récupérer VLC Media Player à l'adresse suivante : Télécharger VLC Puis, après installation : 1. Menu Fichier =>... www.commentcamarche.net/faq/sujet-6828-extraire-le-son-d-une-video
Modèles de documents en ligneModèles de documents en ligne : gagner du temps et éviter les pièges On trouve sur Internet une foule de sites qui proposent des modèles de documents à destination des entreprises. De la lettre type d'embauche au bail commercial, on trouve les... www.commentcamarche.net/faq/sujet-9698-modeles-de-documents-en-ligne
Les paiements en ligneLes moyens de paiement en ligne Renouveler son nom de domaine, acheter des fournitures de bureau, payer ses liens sponsorisés, acheter des billets de train ou d’avion pour ses voyages d’affaires… un chef d’entreprise a mille et une bonnes raisons... www.commentcamarche.net/faq/sujet-9668-les-paiements-en-ligne

Résultats pour Extraire lignes dont le debut est identique

[ACCESS] Extraire N 1eres lignes d'une table (Résolu)Bonjour j'ai besoin de votre aide pour résoudre un problème urgent qui s'exprime très simplement. Soit une table T avec x enregistrements. Soit un paramètre N. Comment faire pour copier dans une nouvelle table T' (au même format que T)... www.commentcamarche.net/forum/affich-2704370-access-extraire-n-1eres-lignes-d-une-table
Extraire le contenu d'un tab (array) en php (Résolu)Bonjour, J'utilise un script trouver sur le net permettant de récupérer les adresse de son carnet de contact. Le script marche nikel et j'obtiens le resultat sous forme d'un tableau : [0] => Array ( [name] => xxxxxx [email] =>... www.commentcamarche.net/forum/affich-5301409-extraire-le-contenu-d-un-tab-array-en-php
[perl] extraire le texte d'une ligne (Résolu)Bonjour, Je cherche à faire un script qui parse un fichier ligne par ligne et qui, à partir d'une certaine position dans la ligne, extrait le contenu de la ligne pour le mettre dans un autre fichier. Par exemple, j'ai un fichier qui contient... www.commentcamarche.net/forum/affich-4859434-perl-extraire-le-texte-d-une-ligne

Résultats pour Extraire lignes dont le debut est identique

Télécharger Extracteur d'icônesLe programme Extracteur d'icônes permet de visualiser les fichiers icônes (ICO) du dossier de votre choix, mais aussi de visualiser et d'extraire les icônes des fichiers EXE, DLL et ICL. Dans ces quatre types de fichiers (ICO, EXE, ICL et DLL)... www.commentcamarche.net/telecharger/telecharger-280-extracteur-d-icones

Résultats pour Extraire lignes dont le debut est identique

[Brève] 43% des internautes français ne changent jamais de mot de passe(Paris - Relax news) - Près d'un européen sur quatre est exposé à la fraude ou au vol d'identité en ligne à cause de mauvaises habitudes concernant le choix des mots de passe, révèle une étude réalisée par la société McAfee. Sur 3.500 personnes... www.commentcamarche.net/actualites/breve-43-des-internautes-francais-ne-changent-jamais-de-mot-de-passe-3787515-actualite.php3

Résultats pour Extraire lignes dont le debut est identique

ISO 17799Introduction à ISO 17799 Issue de la norme britannique BS 7799, la norme ISO 17799 donne des lignes directrices et des recommandations pour le management de la sécurité. La norme 17799 fournit ainsi un canevas permettant d'identifier et de mettre... www.commentcamarche.net/contents/qualite/iso-17799.php3
RFID (Radio Frequency IDentification)Introduction à RFID L'abréviation RFID signifie « Radio Frequency IDentification », en français, « Identification par Radio Fréquence ». Cette technologie permet d’identifier un objet, d’en suivre le cheminement et d’en connaître les... www.commentcamarche.net/contents/rfid/rfid-intro.php3
Publicité en ligneIntroduction à la publicité en ligne La publicité en ligne est un moyen permettant aux webmasters de rentabiliser financièrement leur site internet et de leur permettre de couvrir les coûts d'hébergement et de noms de domaine. Il s'agit également... www.commentcamarche.net/contents/web/publicite-advertising.php3