Comment appliquer regex à un fichier texte volumineux?

2

J'ai des exemples de fichiers texte volumineux (quelques méga) et j'aimerais savoir s'il existe un moyen plus efficace d'appliquer regex qu'à PyCharm ou SublimText 2 sur Mac OSX.

Merci.

Commentaire: Je veux remplacer des éléments, pas seulement des recherches. Un exemple serait le bienvenu.

Alexis Benoist
la source

Réponses:

3

Le moyen le plus efficace de rechercher est grepou peut ag- être , comme ceci:

grep -E "pattern" files

Le moyen le plus efficace de remplacer est le suivant sed:

sed -e "s/pattern/replacement/g" <input.txt >output.txt

Cependant, ces méthodes nécessitent que vous utilisiez la ligne de commande et non une interface graphique sophistiquée.

MISE À JOUR

Après avoir examiné le fichier que vous avez lié, je me rends compte que l'utilisation de grep ou de tout autre utilitaire basé sur du texte est une approche fausse. Ce fichier contient 150 Mo non compressé et constitue en fait des données CSV. Au lieu de cela, je recommande d'importer ces données CSV dans une sorte de base de données. Pour vos besoins, je pense que SQLite fonctionnerait mieux, mais vous pouvez également utiliser des bases de données plus importantes comme PostgreSQL ou MySQL. La clé pour obtenir des recherches très rapides est de créer des index sur le (s) champ (s) recherché (s).

mvp
la source
0

un moyen plus efficace d'appliquer regex à de gros fichiers texte?

Le moyen le plus efficace que je connaisse est grep search_expression hugefile

que PyCharm ou SublimText 2 sur Mac OSX

Ce sont des éditeurs de texte. Tous les éditeurs de texte ne sont pas optimisés pour la recherche dans des fichiers texte volumineux. Ce n'est pas leur travail principal. Ils peuvent effectuer beaucoup d’analyses (par exemple pour la détection et la mise en évidence de la syntaxe) et d’autres tâches qui ne sont pas pertinentes pour votre tâche.

Les petits outils spécialisés peuvent souvent surpasser les outils plus généraux.

RedGrittyBrick
la source