Tôi có các tệp rất lớn (hơn 10Gb). Tôi chỉ cần một số dòng từ đầu tập tin. Có thể (trong vim) để xóa phần còn lại của tệp (từ dòng hiện tại đến cuối tệp)?
Tôi có các tệp rất lớn (hơn 10Gb). Tôi chỉ cần một số dòng từ đầu tập tin. Có thể (trong vim) để xóa phần còn lại của tệp (từ dòng hiện tại đến cuối tệp)?
Câu trả lời:
dG sẽ xóa từ dòng hiện tại đến cuối tập tin
dCtrl+ Endsẽ xóa từ con trỏ đến cuối tập tin
Nhưng nếu tệp này lớn như bạn nói, bạn có thể tốt hơn hết là đọc vài dòng đầu tiên head
thay vì chỉnh sửa và lưu tệp.
head hugefile > firstlines
(Nếu bạn đang ở trên Windows, bạn có thể sử dụng cổng Win32 của head
)
head
cung cấp với ví dụ: head -n20 hugefile
trong 20 dòng đầu tiên. n mặc định là 10.
head
? Sử dụng dG trên một tệp lớn (1G +) mất rất nhiều thời gian (ví dụ: 5 phút).
dgg
sẽ xóa từ dòng hiện tại đến đầu tập tin.
Chuyển đến dòng đầu tiên mà bạn muốn xóa và nhấn các phím dG
:.,$d
Điều này sẽ xóa tất cả nội dung từ dòng hiện tại đến cuối tập tin. Điều này rất hữu ích khi bạn đang xử lý việc tạo hoặc thử nghiệm vectơ thử nghiệm.
:<line number>,$d
ví dụ: :3,$d
sẽ xóa từ dòng 3 đến cuối tệp
Chỉ cần thêm một cách khác, trong chế độ bình thường, nhập ctrl+v
rồi G
, chọn phần còn lại, sau đó D
, tôi không nghĩ nó hiệu quả, bạn nên làm như @Ed Guiness, head -n 20> tên tệp trong linux.
head -n <number_of_lines> <filename> > <truncated_filename>
Đâu-n
là tham số cho số dòng bạn muốn từ đầu