Editor di testo per modificare file di testo di grandi dimensioni (4,3 GB)


87

Esiste un editor di testo che può modificare tale file?

Ho provato:

  • gedit
  • kate
  • nano
  • vim
  • mcedit

senza successo.


8
Devi modificarlo o semplicemente visualizzarlo? In quest'ultimo caso, puoi semplicemente usare "less" dalla CLI.
Shunz,

3
@MrShunz: sì, voglio modificare il file. @Bakhtiyor: la risposta è "SÌ" :)
cupakob

2
Ti consiglio di modificare la tua domanda per menzionare il fatto che desideri modificare il file. Ciò farebbe in modo che le persone non dovessero cercare tra i commenti per capire la tua domanda e / o se la tua domanda è abbastanza simile a quella che hanno.
Firefeather

1
Per caso stai cercando di aprire il file 42 bomb bomb base? Ho avuto questo problema e ho scoperto che un programma chiamato "010 editor" funzionava bene

Risposte:


81

Un altro metodo è usare split. Dividi il file in 8 pezzi e manipola i file con un editor. Dopodiché, ricomponi nuovamente i file.

split -b 53750k <your-file>

cat xa* > <your-file>


SYNOPSIS
       split [OPTION]... [INPUT [PREFIX]]

-a, --suffix-length=N
              use suffixes of length N (default 2)

       -b, --bytes=SIZE
              put SIZE bytes per output file

       -C, --line-bytes=SIZE
              put at most SIZE bytes of lines per output file

       -d, --numeric-suffixes
              use numeric suffixes instead of alphabetic

       -l, --lines=NUMBER
              put NUMBER lines per output file

sembra essere la soluzione migliore al momento ...
cupakob

9
Tieni presente che molti editor aggiungeranno un carattere di nuova riga alla fine del file modificato e lo faranno senza informarti! Per ulteriori informazioni, vedi Come impedire a Gedit, Gvim, Vim, Nano di aggiungere il carattere newline di fine file? askubuntu.com/q/20871/2670
O

bel modo ... e quindi dovresti usare vim con le singole parti ... odio vim: P ma vince tutti gli altri editor qui
Postadelmaga,

1
@ Peter.O: il link è cambiato? Sto facendo fatica a trovare informazioni sul problema del personaggio di nuova riga in quell'URL. : / Aggiornamento: ho
rinogo,

3
(In breve, utilizzare nano --nonewlinesper evitare l'aggiunta automatica di nuove righe)
rinogo

39

Prova Joe . L'ho appena usato per modificare un file di dump SQL ~ 5G. Ci sono voluti circa un minuto per aprire il file e alcuni minuti per salvarlo, con pochissimo uso di swap (su un sistema con 4G RAM).


Questo ha funzionato bene per me per modificare un file XML da 1 GB.
digitaljoel

Funziona bene con file da 2 GB
Damir Olejar,

Provato su un file di dump SQL 14G, ma fallito con un errore IO. (la macchina ha 3 GB di RAM e 3 GB di scambio).
Tehwalrus,

1
Wow! passa 'joe' - dove molti si schiantano!
1111161171159459134,

ha dato a joe un file di 4.6gb e non è successo nulla per alcuni minuti, quindi rinunciato a Hex Fiend lo apre all'istante, ma non sembra che tu possa modificarlo
balupton

17

non li troverai. Se vuoi sostituire alcune righe in questo file, puoi guardare con lesso grep e usare sedper cercare e sostituire alcune righe.

come questo:

sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName

su Wikipedia sono alcuni esempi utili: http://en.wikipedia.org/wiki/Sed


3
O soprattutto con il -iflag (sul posto), quindi si comporta essenzialmente come un editor di testo che sostituirà il contenuto del file originale.
OR Mapper,

Non usare sed -i; questo è quello che edserve.
fkraiem,

14

Provaci, se vuoi, ma file così grandi diventano poco pratici se vuoi fare un editing "normale"; ad esempio, non vuoi andare a salvare le modifiche troppo spesso; ci vorrà troppo tempo :)

Se è per una volta, splite joinfunzionerebbe abbastanza bene, ed è abbastanza semplice tagliarlo in pezzi gestibili, e poi ricongiungere i pezzi ... Prendi nota che molti editor aggiungeranno un carattere di nuova riga alla fine della modifica file e farlo senza informarti! Per ulteriori informazioni, vedi Come impedire a Gedit, Gvim, Vim, Nano di aggiungere il carattere newline di fine file?

Prova Gvim se vuoi davvero modificare un file così grande .... Ho appena caricato un file da 3,9 GB, e tutto sembra essere normale ...

Ecco un link interessante sull'argomento, su StackOverflow


non funziona con gvim ....
cupakob

1
@upakob: Proprio ora ha caricato con successo un file da 4,5 GB sul mio sistema, usando Gvim ... Il caricamento ha richiesto 6 minuti. Hai aspettato abbastanza? (Questo è ciò che intendo per salvare il file. Ci vorrà molto tempo) ... Prova a correre iotopper vedere le sue statistiche I / O durante il caricamento. System Monitor mostra che ho 3,2 GB di RAM (Che puzzle io, come ho 4 GB) ...
Peter

1
@upakob: Questa volta ho provato 8 GB e Gvim l'ha caricato con successo ... Quindi Gvim può "tecnicamente" gestire file grandi, più grandi e forse anche "PIÙ GRANDI", ma anche così è un po '"poco pratico" (a meno che tu non sia come me pronto ad aspettare 41 minuti per caricare 8 GB .. :) ... ma non credo che mi preoccuperò di farlo di nuovo .....
Peter.O

Sembra che tu abbia collegato la domanda sbagliata.
psusi

Sembra che tu abbia cambiato il primo link in modo che sia uguale al secondo, piuttosto che a "come fermare gedit, ecc. Dall'aggiunta della fine del file newline".
psusi,

11

Usa glogg - il log explorer veloce e intelligente: http://glogg.bonnefon.org/


4
Benvenuto in Askubuntu.com! Considerando che il pacchetto proposto può risolvere il problema, tieni presente che glogg ha lo scopo di cercare file di grandi dimensioni, non effettivamente modificarli.
Jos

provato, diventa sempre gonfio.
Kais il

11

Esiste un altro modo molto semplice e veloce per sostituire il contenuto in file molto grandi (che funziona invece di modificare grandi dump mysql)

Prima di tutto dovresti installare Midnight Comander - ottimo file manager per sistemi Linux

sudo apt-get install mc

Successivamente è possibile aprire qualsiasi file di qualsiasi dimensione in "modalità visualizzazione" (con collegamento F3), passare alla vista ESAGONALE (collegamento F4) e attivare la modalità modifica (collegamento F2).

Ad esempio, avevo un dump mysql da 3 GB, dove volevo rimuovere qualche riga SQL. Apro la modalità di visualizzazione, trovo la stringa, apro la modalità esadecimale e sostituisco il contenuto prima della riga necessaria con il commento MYSQL (stringa "-", codici esadecimali 2D 2D 20).

Esempio: vista esadecimale mc


2
I miei 5 centesimi - MC non è riuscito a modificare il file da 110 GB, ma si è aperto in modalità di visualizzazione.
Andron,

@Andron è ancora possibile sostituire il contenuto in modalità visualizzazione
user10635

interessante. Puoi descrivere come?
Andron,

1
@Andron, l'ho già descritto nella mia risposta. :) Apri la modalità di visualizzazione, premi F4 per hex e sostituisci qualsiasi contenuto in qualsiasi file, indipendentemente dalle dimensioni.
user10635

oh, hai ragione. Solo una nota che nel mio caso, ho bisogno di sostituire una o più stringhe lunghe ed è per questo che non va bene per me. Ma sì, in generale, questo è possibile.
Andron,



4

L' nediteditor di testo è in circolazione da molto tempo ed è abbastanza capace. Può aprire un file di testo da 1,9 GB in circa 20 secondi. È un'interfaccia grafica simile a Windows con tutte le funzionalità standard di modifica del testo che ti aspetteresti come evidenziazione della sintassi, rientro, numerazione delle righe e così via.

Se vuoi ridimensionare la finestra, fallo prima di aprire il file di grandi dimensioni. Il motivo X11 è un po 'lento sul ridimensionamento, ma è anche una richiesta fiscale.

È presente in tutti i repository standard, quindi installa con:

sudo apt-get install nedit

È GPLv2 open source.

https://sourceforge.net/projects/nedit/

Sto cercando file di testo da 30-40 Mb e neditli gestisco facilmente.


3

Puoi aprire il file usando hexedit. Tuttavia, potrai solo modificare il testo, non aggiungerlo o rimuoverlo.


2

Secondo questo articolo di Wikipedia Confronto degli editor di testo VIM tra gli altri. Stavo per suggerire Geany ma c'è un? nel campo per il supporto di file di grandi dimensioni ...

EDIT: Sono andato avanti e ho provato con Geany e ho rinunciato dopo aver atteso 10 minuti con 3 core collegati e praticamente tutta la mia memoria (virtuale e fisica) in uso per tutto il tempo ... Non conclusivo poiché potrebbe essere riuscito ad aprirlo se io ero stato più paziente. Ho cercato e non ho trovato alcuna impostazione / preferenza per la gestione di file di grandi dimensioni in modo diverso.

Mi piace la risposta di fred.bear al meglio.



1

Entriamo in una situazione in cui il file di registro è accumulato a 6 GB e dobbiamo cercare per data o stringa. Pochi noti editor di testi potrebbero supportare file così grandi.

Ho trovato l'editor JOE che è in grado di caricare il mio file da 6 GB in 2 minuti e abilitato ad esplorare il file.

Versione di Windows (sourceforge.net)

Ubuntu (sourceforge.net)


0

Lavoro con NetBeans : è meglio di Eclipse in quel contesto.

So che è per gli sviluppatori, ma puoi aprire qualsiasi file di testo semplice con esso.


0

Emacs farà il lavoro (ho già modificato 10 + file GiB in esso), ma è meno ostile per il nuovo utente come vim, quindi potrebbe non soddisfare le tue esigenze. La curva di apprendimento è piuttosto ripida.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.