Texteditor zum Bearbeiten einer großen (4,3 GB) Nur-Text-Datei

86

Gibt es einen Texteditor, der solche Dateien bearbeiten kann?

Ich habe es versucht:

  • gedit
  • kate
  • nano
  • vim
  • mcedit

ohne Erfolg.

Cupakob
quelle
8
Müssen Sie es bearbeiten oder nur anzeigen? In letzterem Fall können Sie einfach "less" von CLI verwenden.
Herr Shunz
3
@ MrShunz: Ja, ich möchte die Datei bearbeiten. @ Bakhtiyor: Die Antwort ist "JA" :)
Cupakob
2
Ich empfehle, Ihre Frage zu bearbeiten, um die Tatsache zu erwähnen, dass Sie die Datei bearbeiten möchten. Das würde dazu führen, dass die Leute nicht nach Kommentaren suchen müssen, um Ihre Frage herauszufinden, und / oder wenn Ihre Frage ähnlich genug ist wie die Frage, die sie haben.
Firefeather
1
Versuchen Sie vielleicht, die 42 zip bomb base-Datei zu öffnen? Ich hatte dieses Problem und fand heraus, dass ein Programm namens "010 editor" gut funktionierte
Related on Stack Overflow: Arbeiten mit riesigen Dateien unter Linux
Eliah Kagan

Antworten:

81

Eine andere Methode ist zu verwenden split. Teilen Sie die Datei in 8 Teile und bearbeiten Sie die Dateien mit einem Editor. Danach setzen Sie die Dateien wieder zusammen.

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
schneehase
quelle
es scheint im Moment die beste Lösung zu sein ...
cupakob
9
Beachten Sie, dass viele Editoren am Ende Ihrer bearbeiteten Datei ein Zeilenumbruchzeichen einfügen , ohne Sie darüber zu informieren! Weitere Informationen finden Sie unter So verhindern Sie, dass Gedit, Gvim, Vim und Nano Zeilenende-Zeichen hinzufügen. askubuntu.com/q/20871/2670
Peter.O
schöne weise ... und dann solltest du vim mit den
einzelteilen verwenden
1
@ Peter.O: Hat sich der Link geändert? Es fällt mir schwer, Informationen zum Problem mit den Zeilenumbrüchen unter dieser URL zu finden. : / Update: Die Frage, auf die verwiesen wird, wurde hier gefunden: askubuntu.com/q/13317/372950
rinogo
3
(Kurz gesagt, verwenden Sie nano --nonewlinesdiese Option, um das automatische Hinzufügen von Zeilenumbrüchen zu vermeiden.)
rinogo
39

Versuch es mit Joe . Ich habe es gerade verwendet, um eine ~ 5G SQL-Dump-Datei zu bearbeiten. Es dauerte ungefähr eine Minute, um die Datei zu öffnen, und ein paar Minuten, um sie mit sehr wenig Swap-Einsatz zu speichern (auf einem System mit 4G RAM).

sierrasdetandil
quelle
Dies funktionierte gut für mich, um eine 1-GB-XML-Datei zu bearbeiten.
Digitaljoel
Funktioniert gut mit 2 GB-Dateien
Damir Olejar
Versuchte eine 14G-SQL-Dump-Datei, schlug jedoch mit einem E / A-Fehler fehl. (Maschine hat 3 GB RAM und 3 GB Swap).
Tehwalrus
1
Beeindruckend! "Joe" geht vorbei - wo viele abstürzen!
1111161171159459134
gab Joe eine 4,6 GB-Datei, und für ein paar Minuten passierte nichts, so gab Hex Fiend öffnet es sofort, aber es scheint nicht, dass Sie darin bearbeiten können
balupton
17

du wirst sie nicht finden. Wenn Sie einige Zeilen in dieser Datei ersetzen möchten, können Sie mit lessoder grep nachsehen und sedzum Suchen und Ersetzen einiger Zeilen verwenden.

so was:

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

Auf Wikipedia finden Sie einige nützliche Beispiele: http://en.wikipedia.org/wiki/Sed

schneehase
quelle
3
Oder vor allem mit dem -iFlag (an Ort und Stelle), sodass es sich im Wesentlichen wie ein Texteditor verhält, der den ursprünglichen Dateiinhalt ersetzt.
ODER Mapper
Nicht verwenden sed -i; das ist, was edist für.
Fkraiem
14

Probieren Sie es aus, wenn Sie möchten, aber so große Dateien werden unpraktisch, wenn Sie "normale" Bearbeitungen vornehmen möchten. Sie möchten z. B. Ihre Änderungen nicht zu oft speichern. es wird zu lange dauern :)

Wenn es für einen einmaligen, splitund joinwäre ganz gut funktionieren, und es ist einfach genug , um es zerhacken in überschaubare Stücke, und dann die Stücke wieder zusammenzubringen ... Beachten Sie, dass viele Redakteure ein Newline - Zeichen hinzufügen , werden bis zum Ende der bearbeiteten Datei, und tun Sie es, ohne Sie zu informieren! Weitere Informationen finden Sie unter So verhindern Sie, dass Gedit, Gvim, Vim und Nano Zeilenende-Zeichen hinzufügen.

Versuchen Sie es mit Gvim, wenn Sie wirklich eine so große Datei bearbeiten möchten. Ich habe gerade eine 3,9-GB-Datei geladen, und alles scheint normal zu sein.

Hier ist ein interessanter Link zum Thema Stackoverflow

Peter.O
quelle
funktioniert nicht mit gvim ....
Cupakob
1
@upakob: Es hat gerade erfolgreich eine 4,5 GB-Datei mit Gvim auf mein System geladen ... Das Laden dauerte 6 Minuten. Hast du lange genug gewartet? (Das ist es, was ich mit dem Speichern der Datei meine. Es wird lange dauern.) ... Versuchen Sie iotop, die I / O-Statistiken beim Laden zu beobachten. Der Systemmonitor zeigt, dass ich 3,2 GB RAM habe (was Rätsel sind) ich, wie ich 4 GB) habe ...
Peter.O
1
@upakob: Ich habe 8 GB dieses Mal ausprobiert und Gvim hat es erfolgreich geladen ... Gvim kann also "technisch" mit großen, größeren und vielleicht sogar "größten" Dateien umgehen, aber trotzdem ist es etwas "unpraktisch". (es sei denn du bist wie ich und bereit, 41 Minuten zu warten, um 8 GB zu laden .. :) ... aber ich glaube nicht, dass ich es wieder tun werde .....
Peter.O
Sie scheinen die falsche Frage verknüpft zu haben.
Psusi
Sie haben anscheinend den ersten Link so geändert, dass er mit dem zweiten Link identisch ist, und nicht so, dass "verhindert wird, dass gedit usw. Zeilenumbrüche am Ende der Datei hinzufügt".
Psusi
11

Verwenden Sie glogg - den schnellen und intelligenten Protokoll-Explorer: http://glogg.bonnefon.org/

Alex
quelle
4
Willkommen bei Askubuntu.com! Während das vorgeschlagene Paket das Problem lösen kann, beachten Sie bitte, dass glogg darauf abzielt, große Dateien zu durchsuchen und sie nicht tatsächlich zu bearbeiten.
Jos
habe es versucht, es wird immer aufgebläht.
Kais
11

Es gibt eine weitere sehr einfache und schnelle Möglichkeit, Inhalte in sehr großen Dateien zu ersetzen (dies funktioniert, anstatt große MySQL-Dumps zu bearbeiten).

Als erstes sollten Sie mitternacht comander installieren - ein großartiger Dateimanager für Linux-Systeme

sudo apt-get install mc

Danach können Sie jede Datei beliebiger Größe im "Ansichtsmodus" (mit F3-Verknüpfung) öffnen, in die HEX-Ansicht (F4-Verknüpfung) wechseln und den Bearbeitungsmodus (F2-Verknüpfung) aktivieren.

Zum Beispiel hatte ich 3 GB MySQL-Dump, wo ich einige SQL-Zeile entfernen möchte. Ich öffne den Ansichtsmodus, finde einen String, öffne den Hex-Modus und ersetze den Inhalt vor der benötigten Zeile mit einem MYSQL-Kommentar (String "-", Hex-Codes 2D 2D 20).

Beispiel: mc hex view

user10635
quelle
2
Meine 5-Cent-MC konnte die 110-GB-Datei nicht bearbeiten, wurde jedoch im Ansichtsmodus geöffnet.
Andron
@ Andron Sie können immer noch Inhalte im Ansichtsmodus ersetzen
user10635
interessant. Kannst du beschreiben wie?
Andron
1
@Andron na ja, das habe ich schon in meiner Antwort beschrieben. :) Öffne den Ansichtsmodus, drücke F4 für hex und ersetze jeglichen Inhalt in einer beliebigen Datei, egal wie groß sie ist.
user10635
oh du hast recht Nur eine Anmerkung, dass ich in meinem Fall eine lange Saite (n) ersetzen muss und deshalb ist es für mich nicht in Ordnung. Aber ja, im Allgemeinen ist das möglich.
Andron
4

Der neditTexteditor gibt es schon lange und er ist durchaus fähig. Es kann eine 1,9-GB-Textdatei in etwa 20 Sekunden öffnen. Es ist eine Windows-ähnliche grafische Oberfläche mit allen Standard-Textbearbeitungsfunktionen, die Sie erwarten würden, wie Syntaxhervorhebung, Einrücken, Zeilennummerierung und so weiter.

Wenn Sie die Größe des Fensters ändern möchten, müssen Sie dies tun, bevor Sie die große Datei öffnen. Das X11-Motiv ist in der Größenänderung etwas langsam, aber es ist auch eine anstrengende Anforderung.

Es ist in allen Standard-Repositories enthalten. Installieren Sie es mit:

sudo apt-get install nedit

Es ist GPLv2 Open Source.

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

Ich stöbere in 30-40 MB großen Textdateien und behandle neditsie problemlos.

Marc Compere
quelle
3

Sie können die Datei mit öffnen hexedit. Sie können den Text jedoch nur ändern , nicht aber hinzufügen oder entfernen.

ostrokach
quelle
2

Nach diesem Wikipedia-Artikel Vergleich der Texteditoren VIM unter anderem. Ich wollte Geany vorschlagen, aber es gibt eine? im Feld für die Unterstützung großer Dateien ...

EDIT: Ich ging voran und versuchte es mit Geany und gab nach 10 Minuten Wartezeit mit 3 Kernen und im Grunde alle meine Speicher (virtuell und physisch) in der gesamten Zeit in Gebrauch ... Nicht schlüssig, da es geschafft haben könnte, es zu öffnen, wenn ich war geduldiger gewesen. Ich habe nach Einstellungen gesucht und auch keine gefunden, um große Dateien anders zu behandeln.

Die Antwort von fred.bear gefällt mir am besten.

Hummel
quelle
1

Wir geraten in eine Situation, in der sich die Protokolldatei auf 6 GB ansammelt und nach Datum oder Zeichenfolge gesucht werden muss. Nur wenige bekannte Texteditoren könnten eine so große Datei unterstützen.

Ich habe den JOE-Editor gefunden, der meine Datei mit 6 GB in 2 Minuten laden und die Datei durchsuchen kann.

Windows-Version (sourceforge.net)

Ubuntu (sourceforge.net)

Praaveen
quelle
0

Ich arbeite mit NetBeans : In diesem Zusammenhang ist es besser als Eclipse.

Ich weiß, dass es für Entwickler ist, aber Sie können jede einfache Textdatei damit öffnen.

Abdennour TOUMI
quelle
0

Emacs erledigt die Aufgabe (ich habe bereits 10 + GiB-Dateien darin bearbeitet), ist für den neuen Benutzer jedoch ungefähr so ​​unfreundlich wie vim, sodass Ihre Anforderungen möglicherweise nicht erfüllt werden. Die Lernkurve ist ziemlich steil.

Darael
quelle