Intendo più di 100 MB di grandezza; tali file di testo possono spingere il limite degli editor.
Ho bisogno di guardare attraverso un grande file XML, ma non posso se l'editor è buggato.
Qualche suggerimento?
VS Code (Windows, macOS, Linux) - Libero e Open Source con una bella GUI. Modifica un file JSON di 3,6 GB, caricato in un minuto. Devi avere abbastanza RAM per caricare i file.
Visualizzatori di sola lettura gratuiti:
tail
." Supporta il file following, la ricerca, il filtraggio, l'evidenziazione configurabile, i plugin e gli strumenti esterni.Editor gratuiti:
Programmi integrati (nessuna installazione richiesta):
MORE
di Windows, non al more
di Unix. Un programma da console che ti permette di visualizzare un file, una schermata alla volta.Visualizzatori web:
Editor a pagamento:
E infine, hai provato ad aprire il file di grandi dimensioni con il tuo normale editor? Alcuni editor possono effettivamente gestire file ragionevolmente grandi. In particolare, Notepad++ (Windows) e Sublime Text (Windows, macOS, Linux) supportano file dell'ordine dei 2 GB.
Perché stai usando editor per guardare solo un file (grande)?
Sotto *nix o Cygwin, basta usare less. (C'è un famoso detto - "less is more, more or less" - perché "less" ha sostituito il precedente comando Unix "more", con l'aggiunta che si poteva scorrere all'indietro). Cercare e navigare sotto less è molto simile a Vim, ma non c'è un file di swap e si usa poca RAM.
Esiste un port Win32 di GNU less. Vedi la sezione "less" della risposta sopra.
Il Perl è buono per script veloci, e il suo operatore ..
(range flip-flop) è un buon meccanismo di selezione per limitare la spazzatura che si deve attraversare.
Per esempio:
$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less
Questo estrarrà tutto dalla linea 1 milione alla linea 2 milioni, e vi permetterà di setacciare l'output manualmente in meno.
Un altro esempio:
$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less
Questo inizia a stampare quando la "espressione regolare uno" trova qualcosa, e si ferma quando la "espressione regolare due" trova la fine di un blocco interessante. Può trovare più blocchi. Setaccia l'output...
Questo è un altro strumento utile che puoi usare. Per citare l'articolo di Wikipedia:
logparser è una flessibile utilità a riga di comando che fu inizialmente scritta da Gabriele Giuseppini, un dipendente Microsoft, per automatizzare i test per il logging di IIS. Era destinato all'uso con il sistema operativo Windows, ed era incluso nel Resource Kit Tools di IIS 6.0. Il comportamento predefinito di logparser funziona come una "pipeline di elaborazione dati", prendendo un'espressione SQL sulla linea di comando, e producendo le linee contenenti le corrispondenze per l'espressione SQL.
Microsoft descrive Logparser come uno strumento potente e versatile che fornisce un accesso universale di query a dati basati su testo come file di log, file XML e file CSV, così come fonti di dati chiave sul sistema operativo Windows come il registro degli eventi, il registro, il file system e Active Directory. I risultati della query di input possono essere formattati su misura in un output basato sul testo, o possono essere persistiti in obiettivi più speciali come SQL, SYSLOG, o un grafico.
Esempio di utilizzo:
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 non sono troppo grandi. 3 GB sta diventando un po' grande. Lavoravo in una struttura di stampa e posta che creava circa il 2% della posta di prima classe degli Stati Uniti. Uno dei sistemi per cui ero il capo tecnico rappresentava circa il 15+% dei pezzi di posta. Avevamo alcuni grossi file da debuggare qua e là.
Sentiti libero di aggiungere altri strumenti e informazioni qui. Questa risposta è il wiki della comunità per una ragione! Abbiamo tutti bisogno di più consigli su come gestire grandi quantità di dati...