Éditeur de texte pour ouvrir de gros fichiers texte (géants, énormes, grands) [fermé]

1023

Je veux dire 100+ Mo gros; ces fichiers texte peuvent pousser l'enveloppe des éditeurs.

J'ai besoin de parcourir un gros fichier XML, mais je ne le peux pas si l'éditeur est bogué.

Aucune suggestion?

Dave Jarvis
la source
166
En fait, les fichiers texte de 100+ Mo ou même 1+ Go ne sont pas aussi rares que vous ne le pensez (c'est-à-dire les fichiers journaux de serveurs occupés).
Anders Sandvig
15
Sneakyness: Et pas exactement du texte. Je pense que les exigences de lecture des fichiers texte et de lecture des fichiers binaires diffèrent quelque peu. Vous pouvez cependant le passer par base64 ou uuencode.
Joey
2
Cela devrait être au moins une question similaire ou même liée car elle a été posée 18 mois avant ... stackoverflow.com/questions/102829/…
ONDEV
1
Je cherchais également la réponse à cette question exacte afin de lire d'énormes fichiers journaux que j'ai générés!
HorseloverFat
1
@BlairHippo Je ressens la même chose, je suis presque nerveux quand je pose une question parce que les chances sont élevées que quelqu'un dise "Ferme ça, ça devrait aller dans WwhatExchange à la place"
Rodolfo

Réponses:

1387

Visionneuses en lecture seule gratuites:

  • Visionneuse de fichiers texte volumineux (Windows) - Thème entièrement personnalisable (couleurs, polices, retour à la ligne, taille des onglets). Prend en charge la vue fractionnée horizontale et verticale. Prend également en charge le suivi de fichiers et la recherche d'expressions régulières. Très rapide, simple et de petite taille exécutable.
  • klogg (Windows, macOS, Linux) - Une fourchette maintenue de glogg , sa principale caractéristique est la recherche d'expressions régulières. Il peut également regarder des fichiers, permet à l'utilisateur de marquer des lignes et intègre de sérieuses optimisations. Mais du point de vue de l'interface utilisateur, c'est moche et maladroit.
  • LogExpert (Windows) - "Un remplacement GUI pourtail." C'est vraiment un analyseur de fichiers journaux, pas une visionneuse de fichiers volumineux, et dans un test, il a fallu 10 secondes et 700 Mo de RAM pour charger un fichier de 250 Mo. Mais ses principales fonctionnalités sont le chroniqueur (journaux d'analyse qui sont au format CSV, JSONL, etc. et affichés dans un format de feuille de calcul) et le surligneur (afficher les lignes avec certains mots dans certaines couleurs). Prend également en charge le suivi de fichiers, les onglets, les multifichiers, les signets, la recherche, les plugins et les outils externes.
  • Lister (Windows) - Très petit et minimaliste. C'est un exécutable, à peine 500 Ko, mais il prend toujours en charge la recherche (avec des expressions régulières), l'impression, un mode d'édition hexadécimal et les paramètres.
  • loxx (Windows) - Prend en charge le suivi de fichiers, la mise en surbrillance, les numéros de ligne, les fichiers volumineux, l'expression régulière, plusieurs fichiers et vues, et bien plus encore. La version gratuite ne peut pas: traiter l'expression régulière, filtrer les fichiers, synchroniser les horodatages et enregistrer les fichiers modifiés.

Éditeurs gratuits:

  • Votre éditeur régulier ou IDE. Les éditeurs modernes peuvent gérer des fichiers étonnamment volumineux. En particulier, Vim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Notepad ++ (Windows), Sublime Text (Windows, macOS, Linux) et VS Code (Windows, macOS, Linux) prennent en charge une large (~ 4 Go), en supposant que vous avez la RAM.
  • Éditeur de fichiers volumineux (Windows) - Ouvre et modifie les fichiers TB +, prend en charge Unicode, utilise peu de mémoire, possède des fonctionnalités spécifiques à XML et inclut un mode binaire.
  • GigaEdit (Windows) - Prend en charge la recherche, les statistiques de caractères et la personnalisation des polices. Mais c'est bogué - avec de gros fichiers, il ne permet que d'écraser des caractères, pas de les insérer; il ne respecte pas LF comme terminateur de ligne, seulement CRLF; et c'est lent.

Programmes intégrés (aucune installation requise):

  • less (macOS, Linux) - L'outil traditionnel de pager en ligne de commande Unix. Vous permet d'afficher des fichiers texte de pratiquement n'importe quelle taille. Peut également être installé sur Windows.
  • Bloc-notes (Windows) - Décent avec des fichiers volumineux, en particulier avec le retour automatique à la ligne désactivé.
  • PLUS (Windows) - Cela fait référence à WindowsMORE, pas à Unixmore. Un programme de console qui vous permet de visualiser un fichier, un écran à la fois.

Visionneuses Web:

  • readfileonline.com - Un autre visualiseur de fichiers volumineux HTML5. Prend en charge la recherche.

Éditeurs rémunérés:

  • Éditeur 010 (Windows, macOS, Linux) - Ouvre des fichiers géants (jusqu'à 50 Go).
  • SlickEdit (Windows, macOS, Linux) - Ouvre des fichiers volumineux.
  • UltraEdit (Windows, macOS, Linux) - Ouvre des fichiers de plus de 6 Go, mais la configuration doit être modifiée pour que cela soit pratique: Menu »Avancé» Configuration »Gestion des fichiers» Fichiers temporaires »Ouvrir un fichier sans fichier temporaire ...
  • EmEditor (Windows) - Gère très bien les très gros fichiers texte (officiellement jusqu'à 248 Go, mais jusqu'à 900 Go selon un rapport).
MultiplyByZer0
la source
60
VIM ou Emacs ... choisissez votre poison, les deux géreront tous les fichiers que vous leur lancerez. Personnellement, je préfère Emacs, mais les deux battront le bloc-notes sans autant de hoquet.
Mike Stone
25
Emacs a une taille de tampon maximale, en fonction de l'architecture sous-jacente (32 ou 64 bits). Je pense que sur les systèmes 32 bits, vous obtenez une erreur "taille maximale de la mémoire tampon dépassée" sur les fichiers supérieurs à 128 Mo.
Rafał Dowgird
82
Je viens d'essayer Notepad ++ avec un fichier journal de 561 Mo et il a dit qu'il était trop gros
barfoon
9
@Rafal Intéressant! On dirait que sur 64 bits, c'est ~ 1024 pétaoctets. La raison tient au fait qu'emacs doit suivre les positions des tampons (comme le point)
baudtack
79
Mais attention, vim ne fonctionnera que tant que les fichiers en question auront suffisamment de sauts de ligne. J'ai dû une fois éditer un ca. Fichier de 150 Mo sans aucun saut de ligne, et a dû recourir à gedit car vim ne pouvait pas le gérer.
Benno
192

Trucs et astuces

Moins

Pourquoi utilisez-vous des éditeurs pour simplement regarder un (gros) fichier?

Sous * nix ou Cygwin , utilisez simplement moins . (Il y a un dicton célèbre - "moins c'est plus, plus ou moins" - parce que "moins" a remplacé la commande Unix précédente "plus", avec l'ajout que vous pouvez faire défiler vers le haut.) La recherche et la navigation sous moins sont très similaires à Vim, mais il n'y a pas de fichier d'échange et peu de RAM utilisée.

Il y a un port Win32 de GNU en moins. Voir la section "moins" de la réponse ci-dessus.

Perl

Perl est bon pour les scripts rapides, et son ..opérateur (bascule de plage) constitue un bon mécanisme de sélection pour limiter le crud que vous devez parcourir.

Par exemple:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

Cela va tout extraire de la ligne 1 million à la ligne 2 millions, et vous permet de tamiser la sortie manuellement en moins.

Un autre exemple:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

Cela démarre l'impression lorsque "l'expression régulière un" trouve quelque chose et s'arrête lorsque "l'expression régulière deux" trouve la fin d'un bloc intéressant. Il peut trouver plusieurs blocs. Tamiser la sortie ...

logparser

Ceci est un autre outil utile que vous pouvez utiliser. Pour citer l'article Wikipedia :

logparser est un utilitaire de ligne de commande flexible qui a été initialement écrit par Gabriele Giuseppini, un employé de Microsoft, pour automatiser les tests de journalisation IIS. Il était destiné à être utilisé avec le système d'exploitation Windows et était inclus avec les outils du kit de ressources IIS 6.0. Le comportement par défaut de logparser fonctionne comme un "pipeline de traitement de données", en prenant une expression SQL sur la ligne de commande et en sortant les lignes contenant des correspondances pour l'expression SQL.

Microsoft décrit Logparser comme un outil puissant et polyvalent qui offre un accès universel aux requêtes aux données textuelles telles que les fichiers journaux, les fichiers XML et les fichiers CSV, ainsi qu'aux principales sources de données sur le système d'exploitation Windows telles que le journal des événements, le registre, le système de fichiers et Active Directory. Les résultats de la requête d'entrée peuvent être mis en forme de manière personnalisée dans une sortie basée sur du texte, ou ils peuvent être conservés sur des cibles plus spécialisées comme SQL, SYSLOG ou un graphique.

Exemple d'utilisation:

C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line > 1000 and line < 2000"
C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line like '%pattern%'"

La relativité des tailles

100 Mo n'est pas trop gros. 3 Go deviennent un peu gros. J'avais l'habitude de travailler dans une installation d'impression et de courrier qui créait environ 2% du courrier de première classe américain. L'un des systèmes dont j'étais le responsable technique représentait environ 15 +% des envois. Nous avions quelques gros fichiers à déboguer ici et là.

Et plus...

N'hésitez pas à ajouter plus d'outils et d'informations ici. Cette réponse est wiki communautaire pour une raison! Nous avons tous besoin de plus de conseils sur le traitement de grandes quantités de données ...

MultiplyByZer0
la source
8
+1, j'ai récemment eu des fichiers xml vraiment énormes (+1 gigaoctet) que je devais regarder. Je suis sur Windows et vim, emacs, notepad ++ et plusieurs autres éditeurs ont complètement étouffé le fichier au point où mon système est devenu presque inutilisable lorsque j'essayais d'ouvrir le fichier. Après un certain temps, j'ai réalisé à quel point il était inutile d'essayer d'ouvrir le fichier dans un éditeur, alors que j'avais juste besoin de le visualiser. En utilisant cygwin (et un peu intelligent grep / less / sed-magic), j'ai facilement trouvé la partie qui m'intéressait et je pouvais la lire sans tracas.
wasatz
8
vous n'avez pas besoin de cygwin pour moins, vous pouvez également l'utiliser sous windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK
2
Cet éditeur XML possède également un composant de visualisation de fichiers volumineux et fournit également une coloration syntaxique pour les fichiers volumineux. Les fichiers ne sont pas complètement chargés en mémoire, donc un document de plusieurs Go ne devrait pas poser de problème. De plus, cet outil peut également valider ces gros documents XML ... À mon avis, l'une des meilleures approches pour travailler avec d'énormes données XML.
lichtfusion
9
OK, je viens de résoudre mon propre problème. lessavec retour à la ligne est lent. less -Ssans retour à la ligne est rapide comme l'éclair même sur les grandes lignes. Je suis de nouveau heureux!
Andy Brown
6
Très bonne réponse. Je veux noter que si vous avez installé Git pour Windows, vous avez probablement aussi Git bash, qui comprend less.
transistor1