Gli amministratori di sistema si trovano spesso a gestire file di grandi dimensioni: log, dump SQL, registri provenienti da software e sensori.
Provando ad aprire file di grandi dimensioni con il Blocco Note di Windows, dopo un’attesa variabile, si ottiene il messaggio d’errore “Il file è troppo esteso per Blocco Note. Usare un altro editor per aprire il file“.
Questo perché il Blocco Note integrato nelle varie versioni di Windows (Windows 10 e precedenti) non può aprire file di dimensioni superiori a 512 MB; il rinnovato Blocco Note di Windows 11 consente invece di aprire file pesanti fino a 1 GB.
Anche editor di testo eccellenti come Notepad++ soffrono di alcuni limiti nell’apertura di file di grandi dimensioni. Notepad++, ad esempio, non riesce a gestire file di dimensioni superiori a 2 GB, anche nella versione a 64 bit.
Gestire file di grandi dimensioni in Linux
Linux offre molteplici comandi che consentono di gestire senza problemi file di grandi dimensioni.
Aprendo una finestra del terminale quindi portandosi nella cartella contenente il file di grandi dimensioni si può usare il comando che seguente per estrarne, ad esempio, le prime 50 righe (al posto di Nomefile.sql va ovviamente specificato il file da elaborare, posto che si trovi nella stessa directory):
Il comando seguente consente invece di estrarre le ultime righe del file specificato (nell’esempio 50):
La sintassi che segue permette di estrarre gli ultimi 1024 byte del file specificato:
Ancora, il comando seguente permette di estrarre dal file, per esempio, le righe 120000-180000:
In tutti i comandi sopra riportati è possibile aggiungere qualcosa come > Output.txt
in modo da ottenere un file di testo con i dati estratti dal file di grandi dimensioni.
Per ciascun comando, inoltre, è possibile usare l’opzione --help
in modo da conoscere tutti gli switch eventualmente utilizzabili.
Aprire file di grandi dimensioni in Windows
La nostra prima scelta per aprire file pesanti in ambiente Windows si chiama LogExpert: è disponibile anche come applicazione portabile (basta estrarre il contenuto del file Zip in una cartella di propria scelta).
Dopo aver aperto il file di grandi dimensioni con LogExpert, durante la fase di caricamento l’applicazione non si blocca e anzi nell’angolo in basso a sinistra mostra il quantitativo di dati in byte via via elaborato.
L’unico problema di LogExpert è che non consente di modificare i file aperti: l’applicazione va considerata come un visualizzatore di file pesanti: è comunque possibile selezionare il contenuto di una o più righe quindi premere CTRL+C
per copiarle negli appunti e CTRL+V
per incollarle altrove.
Dall’interfaccia di LogExpert è possibile selezionare un’unica riga oppure tenere premuto il tasto MAIUSC
per evidenziare più righe in sequenza (si può cliccare con il tasto sinistro del mouse o muoversi con i tasti freccia su/giù).
Per modificare file di grandi dimensioni suggeriamo Large File Editor, un’applicazione che anche in questo caso non pone virtualmente limiti sulla grandezza dei file elaborabili (conterà solamente la dotazione hardware del sistema in uso).
Large File Editor è parte integrante di una suite di prodotti che consentono di intervenire su big data in molteplici formati. La Free Community Edition è completamente gratuita e Large File Editor può essere utilizzato senza alcuna limitazione.
Large File Editor sfrutta molto bene il multithreading in modo da sveltire le elaborazioni di file molto pesanti.
Usare Windows Subsystem for Linux (WSL 2)
Windows 10 e Windows 11 offrono la possibilità di installare ed eseguire Linux nelle principali distribuzioni attraverso un ambiente virtualizzato che però risulta fortemente e strettamente legato con il sistema operativo Microsoft. Per dirne una, con WSL 2 è possibile accedere direttamente al file system dell’installazione di Windows ed effettuare modifiche sugli elementi conservati nelle varie unità.
Supponiamo di voler dividere un file di grandi dimensioni in modo da aprirlo con un programma che soffre di qualche limitazione o comunque gestirlo con maggiore comodità.
A titolo esemplificativo ipotizziamo di aver salvato un file Dump.sql
pesante parecchi gigabyte nella cartella c:\temp\SQL
di Windows.
Avviamo quindi Ubuntu utilizzando WSL 2 quindi digitiamo al prompt quanto segue per portarci nella cartella c:\temp\SQL
:
Utilizzando il comando split
è possibile dividere il file di grandi dimensioni in più porzioni, in questo caso non superiori a 512 MB (500 x 1024 byte):
I produttori di memorie RAM e gli sviluppatori di sistemi operativi utilizzano storicamente il sistema binario. Ecco perché 500 Megabyte equivalgono a 500 x 210 byte.
Come si vede digitando ls -lh
nella finestra di WSL 2 e controllando i frammenti di file creati nella cartella accessibile da Windows, ci si troverà dinanzi a varie porzioni di file con il peso massimo indicato (512 MB).
Facendo clic con il tasto destro su ciascun file in Windows quindi scegliendo Proprietà, le dimensioni su disco possono risultare anche maggiori a causa della dimensione dell’unità di allocazione.
Il vantaggio di WSL 2 è che tutti i comandi Linux per accedere rapidamente al contenuto dei file più pesanti possono essere utilizzati anche in Windows senza abbandonare le applicazioni sulle quali si stava lavorando.
Utilizzando ad esempio un comando come head -50 Dump.sql > Output.txt
è possibile estrarre da WSL 2 le prime cinquanta righe del file specificato per poi aprirle con il Blocco Note di Windows o con Notepad++. Il file Output.txt
continente i dati richiesti viene in questo caso generato nella stessa directory.