Teksteditor om grote (reusachtige, reusachtige, grote) tekstbestanden te openen

Ik bedoel 100+ MB groot; zulke tekstbestanden kunnen de grenzen van editors overschrijden.

Ik moet een groot XML-bestand doorkijken, maar kan dat niet als de editor buggy is.

Iemand suggesties?

Oplossing

VS Code (Windows, macOS, Linux) - Gratis en Open Source met een mooie GUI. Bewerkt een 3,6 GB JSON bestand, geladen in een minuut. Je moet genoeg RAM hebben om de bestanden te laden.

Gratis read-only viewers:

  • glogg (Windows, macOS, Linux) - Bevestigd dat het multi-GB bestanden aankan. De belangrijkste functie is zoeken met reguliere expressies. Heeft tabbladen, leest bestanden rechtstreeks van schijf, kan bestanden bekijken/volgen en stelt de gebruiker in staat regels te markeren.
  • LogExpert (Windows) - "Een GUI vervanger voor tail." Ondersteunt bestanden volgen, zoeken, filteren, configureerbare markering, plugins, en externe tools.
  • Large Text File Viewer (Windows) - Minimalistisch en heeft een zeer kleine executable grootte. Ondersteunt split view, tekst thema aanpassen, regex zoeken, en bestanden volgen.
  • Lister]5 (Windows) - Nog kleiner en minimalistischer. Het is één executable, nauwelijks 500 KB, maar het ondersteunt nog steeds zoeken (met regexes), printen, een hex editor mode, en instellingen.

Gratis editors:

  • Vim en Emacs (Windows, macOS, Linux) - Klassieke Unix-editors. Steile leercurve, maar zeer efficiënt. Ze hebben instellingen die kunnen worden aangepast om ze nog sneller te maken.
  • Large File Editor]6 (Windows) - Opent en bewerkt TB+ bestanden, ondersteunt Unicode, gebruikt weinig geheugen, heeft XML-specifieke functies, en bevat een binaire modus.
  • HxD]7 (Windows) - Een hex-editor, geen tekst-editor; maar het is verbazingwekkend snel en nuttig.
  • GigaEdit (Windows) - Ondersteunt zoeken, karakter-statistieken, en lettertype-aanpassing. Maar het's buggy - met grote bestanden, het staat alleen het overschrijven van tekens toe, niet het invoegen ervan; het respecteert LF niet als een regeleinde, alleen CRLF; en het's traag.

Ingebouwde programma's (geen installatie nodig):

  • less (macOS, Linux) - De traditionele Unix command-line pager tool. Hiermee kunt u tekstbestanden van vrijwel elke grootte bekijken. Kan ook op Windows worden geïnstalleerd.
  • Notepad]10 (Windows) - Degelijk met grote bestanden, vooral met word wrap uitgeschakeld.
  • MORE]11 (Windows) - Dit verwijst naar de Windows MORE, niet de Unix more. Een console programma dat je in staat stelt om een bestand te bekijken, één scherm per keer.

Web viewers:

  • htmlpen.com - Kan TB+ bestanden openen en syntax-highlighten. Maakt bewerken mogelijk, behalve voor zeer grote bestanden. Ondersteunt zoeken, regexen, en exporteren.
  • readfileonline.com - Nog een HTML5 viewer voor grote bestanden. Ondersteunt zoeken.

Betaalde editors:

  • 010 Editor (Windows, macOS, Linux) - Opent gigantische (tot wel 50 GB) bestanden.
  • SlickEdit]15 (Windows, macOS, Linux) - Opent grote bestanden.
  • UltraEdit]16 (Windows, macOS, Linux) - Opent bestanden van meer dan 6 GB, maar de configuratie moet worden gewijzigd om dit praktisch te laten zijn: Menu » Geavanceerd » Configuratie » Bestandsafhandeling » Tijdelijke bestanden » Bestand openen zonder temp-bestand...
  • EmEditor]17 (Windows) - Kan zeer grote tekstbestanden netjes aan (officieel tot 248 GB, maar volgens een rapport zelfs tot 900 GB).

En tenslotte, heb je geprobeerd het grote bestand te openen met je gewone editor? Sommige editors kunnen redelijk grote bestanden aan. Met name Notepad++ (Windows) en Sublime Text (Windows, macOS, Linux) ondersteunen bestanden in de orde van grootte van 2 GB.

Commentaren (61)

Tips and tricks

minder

Waarom gebruik je editors om alleen maar te kijken naar een (groot) bestand?

Onder *nix of Cygwin, gebruik je gewoon less. (Er is een beroemd gezegde - "less is more, more or less" - omdat "less" het vroegere Unix commando "more" verving, met de toevoeging dat je terug omhoog kon scrollen). Zoeken en navigeren onder less lijkt veel op Vim, maar er is geen wisselbestand en er wordt weinig RAM gebruikt.

Er is een Win32 port van GNU less. Zie de "less" sectie van het antwoord hierboven.

Perl

Perl is goed voor snelle scripts, en zijn .. (range flip-flop) operator zorgt voor een mooi selectie mechanisme om de rotzooi waar je doorheen moet te beperken.

Bijvoorbeeld:

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

Dit zal alles van regel 1 miljoen tot regel 2 miljoen extraheren, en u toelaten om de uitvoer manueel te zeven in minder.

Een ander voorbeeld:

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

Dit begint te printen als de "reguliere expressie één" iets vindt, en stopt als de "reguliere expressie twee" het einde van een interessant blok vindt. Het kan meerdere blokken vinden. Zeef de uitvoer...

logparser

Dit is een ander nuttig gereedschap dat je kunt gebruiken. Om het Wikipedia artikel te citeren:

logparser is een flexibel opdrachtregelhulpprogramma dat aanvankelijk werd geschreven door Gabriele Giuseppini, een Microsoft-medewerker, om tests voor IIS-logging te automatiseren. Het was bedoeld voor gebruik met het Windows-besturingssysteem, en werd meegeleverd met de IIS 6.0 Resource Kit Tools. Het standaard gedrag van logparser werkt als een "data processing pipeline", door een SQL expressie op de commandoregel te nemen, en de regels met overeenkomsten voor de SQL expressie uit te voeren.

Microsoft beschrijft Logparser als een krachtig, veelzijdig hulpprogramma dat universele query-toegang biedt tot op tekst gebaseerde gegevens, zoals logbestanden, XML-bestanden en CSV-bestanden, alsmede belangrijke gegevensbronnen op het Windows-besturingssysteem, zoals het gebeurtenissenlogboek, het register, het bestandssysteem en Active Directory. De resultaten van de ingevoerde query kunnen op maat worden geformatteerd in tekstgebaseerde uitvoer, of ze kunnen worden doorgestuurd naar meer gespecialiseerde doelen zoals SQL, SYSLOG, of een grafiek.

Voorbeeld gebruik:

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%'"

De relativiteit van maten

100 MB is niet te groot. 3 GB wordt wel erg groot. Ik werkte bij een print & mail faciliteit die ongeveer 2% van de U.S. eersteklas post produceerde. Een van de systemen waarvoor ik de technische leiding had, was goed voor ongeveer 15+% van de poststukken. We hadden hier en daar grote bestanden te debuggen.

And more...

Voel je vrij om hier meer hulpmiddelen en informatie toe te voegen. Dit antwoord is niet voor niets community wiki! We hebben allemaal meer advies nodig over het omgaan met grote hoeveelheden gegevens...

Commentaren (12)