Editor teks untuk membuka file teks besar (raksasa, besar, besar) [ditutup]

1023

Maksud saya 100+ MB besar; file teks seperti itu dapat mendorong amplop editor.

Saya perlu melihat melalui file XML besar, tetapi tidak bisa jika editor buggy.

Ada saran?

Dave Jarvis
sumber
166
Sebenarnya, file teks 100+ MB atau bahkan 1+ GB tidak biasa seperti yang Anda kira (mis. File log dari server sibuk).
Anders Sandvig
15
Sneakyness: Dan bukan teks. Saya pikir persyaratan membaca file teks dan membaca file biner agak berbeda. Anda mungkin melewatkannya melalui base64 atau uuencode.
Joey
2
Ini harus setidaknya pertanyaan serupa atau bahkan ditautkan seperti yang diminta 18 bulan sebelumnya ... stackoverflow.com/questions/102829/…
ONDEV
1
Saya juga mencari jawaban untuk pertanyaan yang tepat ini untuk membaca beberapa file log besar yang saya hasilkan!
HorseloverFat
1
@ BlairHippo Saya merasakan hal yang sama, saya hampir gugup ketika mengajukan pertanyaan karena kemungkinan tinggi bahwa seseorang akan mengatakan "Tutup ini, itu seharusnya masuk dalam ApapunExchange"
Rodolfo

Jawaban:

1387

Pemirsa hanya baca gratis:

  • Large Text File Viewer (Windows) - Tema yang sepenuhnya dapat disesuaikan (warna, font, bungkus kata, ukuran tab). Mendukung tampilan split horisontal dan vertikal. Juga mendukung mengikuti file dan regex pencarian. Sangat cepat, sederhana, dan memiliki ukuran kecil yang dapat dieksekusi.
  • klogg (Windows, macOS, Linux) - Garpu terpelihara dari glogg , fitur utamanya adalah pencarian ekspresi reguler. Itu juga dapat menonton file, memungkinkan pengguna untuk menandai baris, dan memiliki optimasi serius built-in. Tapi dari sudut pandang UI, itu jelek dan kikuk.
  • LogExpert (Windows) - "Pengganti GUI untuktail." Ini benar-benar penganalisa file log, bukan penampil file besar, dan dalam satu pengujian diperlukan 10 detik dan 700 MB RAM untuk memuat file 250 MB. Tetapi fitur pembunuh adalah kolumnis (parse log yang ada di CSV, JSONL, dll. Dan ditampilkan dalam format spreadsheet) dan stabilo (menunjukkan garis dengan kata-kata tertentu dalam warna tertentu). Juga mendukung mengikuti file, tab, multifile, bookmark, pencarian, plugins, dan alat eksternal.
  • Lister (Windows) - Sangat kecil dan minimalis. Ini adalah satu yang dapat dieksekusi, hampir 500 KB, tetapi masih mendukung pencarian (dengan regex), pencetakan, mode hex editor, dan pengaturan.
  • loxx (Windows) - Mendukung mengikuti, menyoroti, nomor baris, file besar, regex, banyak file dan tampilan, dan banyak lagi. Versi gratis tidak dapat: memproses regex, memfilter file, menyinkronkan cap waktu, dan menyimpan file yang diubah.

Editor gratis:

  • Editor atau IDE reguler Anda. Editor modern dapat menangani file besar yang mengejutkan. Secara khusus, Vim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Notepad ++ (Windows), Teks Sublime (Windows, macOS, Linux), dan Kode VS (Windows, macOS, Linux) mendukung besar (~ 4 GB) file, dengan asumsi Anda memiliki RAM.
  • Large File Editor (Windows) - Membuka dan mengedit file TB +, mendukung Unicode, menggunakan sedikit memori, memiliki fitur spesifik XML, dan menyertakan mode biner.
  • GigaEdit (Windows) - Mendukung pencarian, statistik karakter, dan penyesuaian font. Tapi itu buggy - dengan file besar, itu hanya memungkinkan menimpa karakter, tidak memasukkannya; tidak menghormati LF sebagai terminator garis, hanya CRLF; dan lambat.

Program bawaan (tidak diperlukan instalasi):

  • less (macOS, Linux) - Alat pager baris perintah Unix tradisional. Memungkinkan Anda melihat file teks dengan ukuran apa pun. Dapat diinstal pada Windows juga.
  • Notepad (Windows) - Layak dengan file besar, terutama dengan bungkus kata dimatikan.
  • LEBIH (Windows) - Ini mengacu pada WindowsMORE, bukan Unixmore. Program konsol yang memungkinkan Anda melihat file, satu layar pada satu waktu.

Pemirsa web:

Editor berbayar:

  • 010 Editor (Windows, macOS, Linux) - Membuka file raksasa (sebesar 50 GB).
  • SlickEdit (Windows, macOS, Linux) - Membuka file besar.
  • UltraEdit (Windows, macOS, Linux) - Membuka file lebih dari 6 GB, tetapi konfigurasi harus diubah agar menjadi praktis: Menu »Lanjutan» Konfigurasi »Penanganan File» File Sementara »Buka file tanpa file temp ...
  • EmEditor (Windows) - Menangani file teks sangat besar dengan baik (resmi hingga 248 GB, tetapi sebanyak 900 GB menurut satu laporan).
MultiplyByZer0
sumber
60
VIM, atau Emacs ... ambil racun Anda, keduanya akan menangani file apa pun yang Anda lemparkan ke mereka. Saya pribadi lebih suka Emacs, tetapi keduanya akan mengalahkan notepad tanpa banyak masalah.
Mike Stone
25
Emacs memiliki ukuran buffer maksimum, tergantung pada arsitektur yang mendasarinya (32 atau 64 bit). Saya pikir pada sistem 32 bit Anda mendapatkan kesalahan "ukuran buffer maksimum terlampaui" pada file yang lebih besar dari 128 MB.
Rafał Dowgird
82
Aku hanya mencoba Notepad ++ dengan file 561MB log dan mengatakan itu terlalu besar
barfoon
9
@ Rafal Menarik! Sepertinya pada 64bit itu ~ 1024 petabyte. Alasannya ada hubungannya dengan fakta bahwa emacs harus melacak posisi buffer (seperti titik)
baudtack
79
Tapi hati-hati, vim hanya akan berfungsi selama file tersebut memiliki cukup jeda baris. Saya pernah harus mengedit ca. 150 MB file tanpa jeda baris apa pun, dan terpaksa menggunakan gedit karena vim tidak bisa mengatasinya.
Benno
192

Kiat dan trik

kurang

Mengapa Anda menggunakan editor untuk hanya melihat file (besar)?

Di bawah * nix atau Cygwin , gunakan saja lebih sedikit . (Ada pepatah terkenal - "kurang lebih, lebih atau kurang" - karena "kurang" menggantikan perintah Unix sebelumnya "lebih", dengan tambahan bahwa Anda dapat menggulirkan kembali.) Pencarian dan navigasi di bawah kurang mirip dengan Vim, tetapi tidak ada file swap dan sedikit RAM yang digunakan.

Ada port GNU Win32 kurang. Lihat bagian "kurang" dari jawaban di atas.

Perl

Perl bagus untuk skrip cepat, dan ..operator (range-flop) membuat mekanisme seleksi yang bagus untuk membatasi crud yang harus Anda lalui.

Sebagai contoh:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

Ini akan mengekstraksi semuanya dari baris 1 juta ke baris 2 juta, dan memungkinkan Anda untuk menyaring output secara manual dalam waktu kurang.

Contoh lain:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

Ini mulai mencetak ketika "ekspresi reguler satu" menemukan sesuatu, dan berhenti ketika "ekspresi reguler dua" menemukan ujung blok yang menarik. Mungkin menemukan banyak blok. Menyaring output ...

logparser

Ini adalah alat bermanfaat lainnya yang dapat Anda gunakan. Mengutip artikel Wikipedia :

logparser adalah utilitas baris perintah yang fleksibel yang pada awalnya ditulis oleh Gabriele Giuseppini, seorang karyawan Microsoft, untuk mengotomatisasi tes untuk logging IIS. Itu dimaksudkan untuk digunakan dengan sistem operasi Windows, dan disertakan dengan IIS 6.0 Resource Kit Tools. Perilaku default logparser bekerja seperti "pipeline pemrosesan data", dengan mengambil ekspresi SQL pada baris perintah, dan mengeluarkan baris yang berisi kecocokan untuk ekspresi SQL.

Microsoft menjelaskan Logparser sebagai alat yang kuat dan serbaguna yang menyediakan akses permintaan universal ke data berbasis teks seperti file log, file XML dan file CSV, serta sumber data utama pada sistem operasi Windows seperti Event Log, Registry, sistem file, dan Direktori Aktif. Hasil kueri input dapat diformat khusus dalam output berbasis teks, atau mereka dapat bertahan untuk target yang lebih khusus seperti SQL, SYSLOG, atau bagan.

Contoh penggunaan:

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%'"

Relativitas ukuran

100 MB tidak terlalu besar. 3 GB menjadi agak besar. Saya dulu bekerja di fasilitas cetak & surat yang menciptakan sekitar 2% dari surat kelas AS. Salah satu sistem di mana saya adalah pemimpin teknologi menyumbang sekitar 15 +% dari potongan surat. Kami memiliki beberapa file besar untuk di-debug di sana-sini.

Dan lagi ...

Jangan ragu untuk menambahkan lebih banyak alat dan informasi di sini. Jawaban ini adalah wiki komunitas karena suatu alasan! Kita semua membutuhkan saran lebih lanjut tentang berurusan dengan sejumlah besar data ...

MultiplyByZer0
sumber
8
+1, saya baru-baru ini memiliki beberapa file xml yang sangat besar (+1 gigabyte) yang perlu saya lihat. Saya di windows dan keduanya vim, emacs, notepad ++, dan beberapa editor lainnya benar-benar tersendat pada file ke titik di mana sistem saya hampir menjadi tidak dapat digunakan ketika mencoba untuk membuka file. Setelah beberapa saat saya menyadari betapa tidak perlu untuk benar-benar mencoba membuka file di -editor- ketika saya hanya perlu -view-. Menggunakan cygwin (dan beberapa grep pintar / kurang / sed-magic) Saya dengan mudah menemukan bagian yang saya tertarik dan bisa membacanya tanpa kerumitan.
wasatz
8
Anda tidak perlu lebih sedikit cygwin, Anda juga dapat menggunakannya di bawah windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK
2
Editor XML ini di sini juga memiliki komponen penampil file besar dan menyediakan pewarnaan sintaks juga untuk file besar. File tidak dimuat sepenuhnya ke dalam memori sehingga dokumen multi-GB seharusnya tidak menjadi masalah. Selain itu alat ini juga dapat memvalidasi dokumen-dokumen XML besar ... Menurut saya salah satu pendekatan terbaik untuk bekerja dengan data XML besar.
lichtfusion
9
OK jadi saya baru saja memperbaiki masalah saya sendiri. lessdengan bungkus kata lambat. less -Stanpa bungkus kata adalah kilat cepat bahkan pada garis besar. Aku bahagia lagi!
Andy Brown
6
Jawaban yang bagus Saya ingin mencatat bahwa jika Anda memiliki Git untuk Windows diinstal, Anda mungkin memiliki Git bash juga, yang termasuk less.
transistor1