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?
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:
tail
." Ondersteunt bestanden volgen, zoeken, filteren, configureerbare markering, plugins, en externe tools.Gratis editors:
Ingebouwde programma's (geen installatie nodig):
MORE
, niet de Unix more
. Een console programma dat je in staat stelt om een bestand te bekijken, één scherm per keer.Web viewers:
Betaalde editors:
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.
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 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...
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%'"
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.
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...