Cara melihat file teks besar melalui Vi atau gedit

24

Saya telah menghasilkan wordlist.txtsebesar 11 GB pada crunch-3.6. Ketika saya mencoba untuk membuka file dengan Vi atau gedit, saya mengalami masalah karena ukuran file. Bagaimana saya bisa melihat file ini?

vais sai
sumber
8
Saya pikir ini bukan duplikat. Meskipun terkait erat dan beberapa jawaban mungkin membantu, yang satu ini adalah tentang melihat dan tidak mengedit. Jawaban yang diterima tidak membantu untuk dilihat.
pLumo
1
Saya setuju. Melihat file dan mengedit file bukanlah hal yang sama, dan perbedaannya hanya menjadi lebih penting ketika file tersebut sangat besar.
Eliah Kagan

Jawaban:

43

Jangan gunakan editor teks untuk melihat teks.

Ada alat yang lebih baik:


Lihat file dengan less(Gulir dengan Spasi, Akhir, Home, PageUp, PageDown; Cari dengan "/ sesuatu"; Biarkan dengan q).

Dari lessmanual:

Less tidak harus membaca seluruh file input sebelum memulai, jadi dengan file input besar itu mulai lebih cepat daripada editor teks seperti vi (1).

Pemakaian:

less wordlist.txt

Pertimbangkan penggunaan less -n:

-n atau --line-number:

Menekan nomor baris. Default (untuk menggunakan nomor baris) dapat menyebabkan kurang berjalan lebih lambat dalam beberapa kasus, terutama dengan file input yang sangat besar. Menekan nomor baris dengan -nopsi akan menghindari masalah ini.

(terima kasih telah menyarankan opsi -n @pipe)


Gunakan grephanya untuk mendapatkan garis yang Anda minati:

# Show all Lines beginning with A:
grep "^A:"  wordlist.txt

# Show all Lines ending with x and use less for better viewing
grep "x$"  wordlist.txt | less

Gunakan headatau tailuntuk mendapatkan n baris pertama atau terakhir

head wordlist.txt
tail -n 200 wordlist.txt

Untuk mengedit teks, lihat pertanyaan ini .

pLumo
sumber
4
Catatan yang moreakan memuat seluruh file dalam memori, tidak seperti less. Jika sebesar itu, saya sarankan untuk tidak menggunakannya. Pilihan terbaik pasti akan digunakan grep.
Nepho
1
Komentar saya mungkin sebenarnya salah. Saya mulai memeriksa keduanya moredan lesskode sumber, dan keduanya tampaknya menggunakan salah satu openatau fopen, yang tidak mengubah apa pun mengenai cara file dimuat, sejauh yang saya tahu
Nepho
2
Sepakat. moreadalah utilitas yang sangat tanggal, jika lesstersedia saya tidak memikirkan alasan mengapa Anda akan menggunakan more.
Nepho
1
@Nepho, morememiliki satu kelebihan besar less: tidak mendukung LESSOPENpreprocessor input. Jika Anda mencoba untuk melihat teks mentah dari halaman manual atau sesuatu, itu jauh lebih cepat untuk mengetik more my_docs.mandaripada menggali melalui lessdokumentasi untuk mengetahui cara menekan preprocessor.
Markus
1
Saya sarankan untuk tidak menggunakan sesuatu seperti less -nSuntuk file besar, untuk mempercepat sedikit.
pipa
10

Seringkali, hanya "grep" sudah cukup untuk menemukan apa yang Anda butuhkan.

Jika Anda membutuhkan lebih banyak "konteks" di sekitar baris tertentu, kemudian gunakan "grep -n" untuk menemukan nomor baris dari baris yang diminati, kemudian gunakan sed untuk mencetak "potongan" file di sekitar baris itu:

$ grep -n 'word' file 
123:A line with with word in it 

$ sed -n '120,125p' file 
A line 
Another line
The line before
A line with with word in it 
The line after
Something else
Phill W.
sumber
10
tidak perlu untuk sed, Anda dapat menggunakan grep -Bdan -A mencetak garis B efore dan A
fter
7
@RoVo Atau -Cuntuk sebongkah C (baik sebelum dan sesudah).
wjandrea