Cách xem tệp văn bản lớn qua Vi hoặc gedit


24

Tôi đã tạo ra wordlist.txt11 GB bằng cách crunch-3.6. Khi tôi cố gắng mở tệp bằng Vi hoặc gedit, tôi gặp vấn đề vì kích thước tệp. Làm thế nào tôi có thể xem tập tin này?


8
Tôi không nghĩ đó là một bản sao. Mặc dù nó liên quan chặt chẽ và một số câu trả lời có thể hữu ích, nhưng câu trả lời này là về xem và không chỉnh sửa. Câu trả lời được chấp nhận là không hữu ích để xem.
pLumo

1
Tôi đồng ý. Xem một tập tin và chỉnh sửa một tập tin không giống nhau, và sự khác biệt chỉ trở nên quan trọng hơn khi tập tin rất lớn.
Eliah Kagan

Câu trả lời:


43

Đừng sử dụng trình soạn thảo văn bản để xem văn bản.

Có những công cụ tốt hơn:


Xem các tệp với less(Di chuyển bằng dấu cách, Kết thúc, Trang chủ, PageUp, PageDown; Tìm kiếm với "/ cái gì đó"; Để lại với q).

Từ lesshướng dẫn:

Ít hơn không phải đọc toàn bộ tệp đầu vào trước khi bắt đầu, vì vậy với các tệp đầu vào lớn, nó khởi động nhanh hơn các trình soạn thảo văn bản như vi (1).

Sử dụng:

less wordlist.txt

Xem xét việc sử dụng less -n:

-n hoặc - số dòng:

Loại bỏ số dòng. Mặc định (để sử dụng số dòng) có thể khiến ít chạy chậm hơn trong một số trường hợp, đặc biệt là với tệp đầu vào rất lớn. Việc loại bỏ số dòng với -ntùy chọn sẽ tránh được vấn đề này.

(cảm ơn vì đã gợi ý tùy chọn -n @pipe)


Sử dụng grepđể chỉ nhận các dòng bạn quan tâm:

# 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

Sử dụng headhoặc tailđể có được n dòng đầu tiên hoặc cuối cùng

head wordlist.txt
tail -n 200 wordlist.txt

Để chỉnh sửa văn bản, hãy tham khảo câu hỏi này .


4
Lưu ý rằng moresẽ tải toàn bộ tập tin trong bộ nhớ, không giống như less. Nếu nó lớn như vậy, tôi khuyên bạn không nên sử dụng nó. Lựa chọn tốt nhất chắc chắn sẽ là sử dụng grep.
Nepho

1
Nhận xét của tôi thực sự có thể là sai. Tôi bắt đầu kiểm tra cả mã nguồn morelessmã nguồn, và cả hai dường như sử dụng openhoặc fopen, điều này không thay đổi bất cứ điều gì liên quan đến cách tải tệp, theo như tôi biết
Nepho

2
Đã đồng ý. morelà một tiện ích rất cũ, nếu lesscó sẵn tôi không nghĩ ra bất kỳ lý do nào khiến bạn sử dụng more.
Nepho

1
@Nepho, morecó một lợi thế rất lớn so với less: nó không hỗ trợ LESSOPENbộ tiền xử lý đầu vào. Nếu bạn đang cố gắng xem văn bản thô của trang man hoặc thứ gì đó, việc nhập nhanh hơn nhiều more my_docs.manso với tìm hiểu lesstài liệu để tìm ra cách triệt tiêu bộ tiền xử lý.
Đánh dấu

1
Tôi đề nghị gọi ít hơn bằng cách sử dụng một cái gì đó như less -nScho các tệp lớn, để tăng tốc mọi thứ lên một chút.
ống

10

Thông thường, chỉ cần "grep" là đủ để tìm thấy những gì bạn cần.

Nếu bạn cần thêm "ngữ cảnh" xung quanh một dòng cụ thể, thì hãy sử dụng "grep -n" để tìm số dòng của dòng quan tâm, sau đó sử dụng sed để in ra một "đoạn" của tệp xung quanh dòng đó:

$ 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

10
không cần sed, bạn có thể sử dụng grep -B-A in các dòng B eFor và A
fter

7
@RoVo Hoặc -Ccho một hunk C (cả trước và sau).
wjandrea
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.