Je veux dire 100+ Mo de taille ; de tels fichiers texte peuvent pousser l'enveloppe des éditeurs.
J'ai besoin de parcourir un gros fichier XML, mais je ne peux pas le faire si l'éditeur est bogué.
Avez-vous des suggestions ?
[VS Code][1] (Windows, macOS, Linux) - Gratuit et Open Source avec une belle interface graphique. Édition d'un fichier JSON de 3,6 Go, chargé en une minute. Vous devez avoir assez de RAM pour charger les fichiers.
Visionneuses gratuites en lecture seule :
tail
." Supporte le suivi de fichiers, la recherche, le filtrage, la mise en évidence configurable, les plugins et les outils externes.Éditeurs gratuits :
Programmes intégrés (aucune installation requise) :
MORE
de Windows, pas au more
d'Unix. Un programme de console qui vous permet de visualiser un fichier, un écran à la fois.Visionneuses Web :
Éditeurs payants :
Enfin, avez-vous essayé d'ouvrir le gros fichier avec votre éditeur habituel ? Certains éditeurs peuvent en effet gérer des fichiers de taille raisonnable. En particulier, [Notepad++][18] (Windows) et [Sublime Text][19] (Windows, macOS, Linux) prennent en charge des fichiers de l'ordre de 2 Go.
[1] : https://code.visualstudio.com/ [2] : https://glogg.bonnefon.org/description.html [3] : https://github.com/zarunbal/LogExpert [4] : https://web.archive.org/web/20140908181354fw_/http://swiftgear.com/ltfviewer/features.html [5] : https://www.ghisler.com/lister/ [6] : https://www.liquid-technologies.com/large-file-editor [7] : https://mh-nexus.de/en/hxd/ [8] : http://www.heliwave.com/GigaEdit.html [9] : https://en.wikipedia.org/wiki/Less_(Unix) [10] : https://en.wikipedia.org/wiki/Microsoft_Notepad [11] : https://ss64.com/nt/more.html [12] : https://htmlpen.com [13] : https://www.readfileonline.com/ [14] : https://www.sweetscape.com/010editor/ [15] : https://www.slickedit.com/products/slickedit [16] : https://www.ultraedit.com/ [17] : https://www.emeditor.com/ [18] : https://notepad-plus-plus.org/ [19] : https://www.sublimetext.com/
Pourquoi utilisez-vous l'éditeur pour simplement regarder un (gros) fichier ?
Sous *nix ou [Cygwin][1], utilisez simplement [less][2]. (Il y a un célèbre dicton - "less is more, more or less" - parce que "less" a remplacé l'ancienne commande Unix "more", avec l'ajout que vous pouviez faire défiler vers le haut). La recherche et la navigation sous less est très similaire à Vim, mais il n'y a pas de fichier d'échange et peu de RAM utilisée.
Il existe un portage Win32 de GNU less. Voir la section "less" de la réponse ci-dessus.
Perl est bon pour les scripts rapides, et son opérateur ..
(bascule d'intervalle) constitue un mécanisme de sélection agréable pour limiter les déchets que vous devez parcourir.
Par exemple :
$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less
Ceci extraira tout de la ligne 1 million à la ligne 2 millions, et vous permettra de trier la sortie manuellement dans less.
Un autre exemple :
$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less
L'impression commence 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. Elle peut trouver plusieurs blocs. Passez la sortie au crible...
Voici un autre outil utile que vous pouvez utiliser. Pour citer [l'article de Wikipedia][3] :
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 d'IIS. Il était destiné à être utilisé avec le système d'exploitation Windows, et était inclus dans 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 fournit un accès universel aux données textuelles telles que les fichiers journaux, les fichiers XML et les fichiers CSV, ainsi que les principales sources de données du 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 formatés de manière personnalisée dans une sortie texte, ou ils peuvent être persistés dans 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%'"
100 Mo, ce n'est pas trop grand. 3 Go, ça devient un peu gros. Je travaillais dans un centre d'impression et de courrier qui produisait environ 2 % du courrier de première classe des États-Unis. L'un des systèmes pour lequel j'étais le responsable technique représentait environ 15+% des pièces de courrier. Nous avions quelques gros fichiers à déboguer ici et là.
N'hésitez pas à ajouter d'autres outils et informations ici. Cette réponse est un wiki communautaire pour une raison ! Nous avons tous besoin de plus de conseils pour gérer de grandes quantités de données...
[1] : http://en.wikipedia.org/wiki/Cygwin [2] : http://linux.die.net/man/1/less [3] : https://en.wikipedia.org/wiki/Logparser