grep -f alternative pour les gros fichiers

grep -F -f file1  file2

fichier1 est de 90 Mo (2,5 millions de lignes, en un mot par ligne)

fichier2 est de 45 Go

Que la commande n'a pas fait de produire quoi que ce soit, peu importe combien de temps je laisse courir. Clairement, c'est au-delà de grep.

Il semble grep ne peut pas gérer de nombreuses requêtes de la -f option. Toutefois, la commande suivante ne produire le résultat désiré:

head file1  >  file3
grep -F -f file3   file2

J'ai des doutes quant à savoir si sed ou awk serait de solutions de rechange appropriées, compte tenu de la taille du fichier.

Je suis à une perte pour des alternatives... s'il vous plaît aider. Est-il utile d'apprendre quelques sql commandes? Est-il facile? Quelqu'un peut me pointer dans la bonne direction?

Pouvez-vous utiliser le split de commande pour briser fichier1 en morceaux?
Les commandes SQL ne sera pas généralement vous aider avec des fichiers raw.
si il a divisé le fichier de modèle en 100 pc, il a de jouer avec les 45G de monster 100 fois..c'est ok...**ET** il doit supprimer dupliqué appariés lignes. depuis grep -f signifie "OU".... Je ne sais pas si c'est plus rapide.
quel système d'exploitation êtes-vous sur? Mon expérience avec grep -F -f listFile est que vous obtenez un message d'erreur disant listFile too big (ou similaire). Hm... d'Autres lecteurs... N'est-ce pas là quelque chose à propos de -f listFile être un fichier trié? ? Aussi, bien que SQL pourrait résoudre ce problème, il y aura un hugh moment de l'installation de SQL installé, cfged, etc. Si votre faire un processus de production qui fonctionnent régulièrement, il peut être vaut l'investissement en temps, mais sans doute pas dans le calendrier de votre projet. Bonne chance!
Il vous suffit de faire cat fichier2, parce que si vous grep hors de 2,5 millions de mots à partir d'un fichier, presque toutes les lignes vont apparaître avec le temps 🙂

OriginalL'auteur cmo | 2013-05-02