54 votes

Rechercher et remplacer du texte dans un fichier volumineux de 47 Go

Je dois faire quelques tâches de recherche et de remplacement sur un fichier assez volumineux, d'environ 47 Go.

Est-ce que quelqu'un sait comment faire cela ? J'ai essayé d'utiliser des services tels que TextCrawler, EditpadLite et bien d'autres, mais rien ne prend en charge un fichier aussi volumineux.

Je suppose que cela peut être fait via la ligne de commande.

Avez-vous une idée de comment cela peut être accompli?

58voto

Ryan Points 10831

Sed (éditeur de flux pour filtrer et transformer du texte) est votre ami.

 sed -i 's/old text/new text/g' file

Sed effectue des transformations de texte en un seul passage.

47voto

JorgeKlemm Points 391

J'utilise FART - Find And Replace Text de Lionello Lunesu.

Cela fonctionne très bien sur Windows Seven x64.

Vous pouvez rechercher et remplacer le texte à l'aide de cette commande :

 fart -c big_filename.txt "find_this_text" "replace_to_this"

github

7voto

Ignacio Carvajal Points 141

Sous Unix ou Mac :

sed 's/oldstring/newstring/g' oldfile.txt > newfile.txt

rapide et facile...

0voto

J'ai résolu le problème en utilisant, auparavant, la division pour réduire le gros fichier en petits de 100 Mo chacun.

-1voto

Devraj Points 1667

Si vous utilisez un système de type Unix, vous pouvez utiliser cat | sed pour faire ça

 cat hosted_domains.txt | sed s/com/net/g

L'exemple remplace com par net dans une liste de noms de domaine, puis vous pouvez rediriger la sortie vers un fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X