ฉันมีไฟล์ที่มีขนาดใหญ่มาก (มากกว่า 10Gb) ฉันต้องการเพียงบางบรรทัดจากด้านบนของไฟล์ เป็นไปได้ (เป็นกลุ่ม) เพื่อลบส่วนที่เหลือของไฟล์ (จากบรรทัดปัจจุบันถึงจุดสิ้นสุดไฟล์)?
ฉันมีไฟล์ที่มีขนาดใหญ่มาก (มากกว่า 10Gb) ฉันต้องการเพียงบางบรรทัดจากด้านบนของไฟล์ เป็นไปได้ (เป็นกลุ่ม) เพื่อลบส่วนที่เหลือของไฟล์ (จากบรรทัดปัจจุบันถึงจุดสิ้นสุดไฟล์)?
คำตอบ:
dG จะลบจากบรรทัดปัจจุบันไปยังจุดสิ้นสุดไฟล์
dCtrl+ Endจะลบจากเคอร์เซอร์ไปที่ท้ายไฟล์
แต่ถ้าไฟล์นี้มีขนาดใหญ่เท่าที่คุณพูดคุณอาจจะดีกว่าที่จะอ่านสองสามบรรทัดแรกheadแทนที่จะแก้ไขและบันทึกไฟล์
head hugefile > firstlines
(ถ้าคุณอยู่บน Windows คุณสามารถใช้พอร์ต Win32 ของhead)
headจัดหาด้วยเช่น: head -n20 hugefileสำหรับ 20 บรรทัดแรก n เป็นค่าเริ่มต้นถึง 10
headหรือ? การใช้ dG ในไฟล์ขนาดใหญ่ (1G +) ใช้เวลานาน (เช่น 5 นาที)
dggจะถูกลบจากบรรทัดปัจจุบันไปยังจุดเริ่มต้นของไฟล์
:.,$d
การดำเนินการนี้จะลบเนื้อหาทั้งหมดออกจากบรรทัดปัจจุบันจนถึงจุดสิ้นสุดของไฟล์ สิ่งนี้มีประโยชน์มากเมื่อคุณจัดการกับการสร้างเวกเตอร์หรือการลอกแบบทดสอบ
:<line number>,$dตัวอย่างเช่น: :3,$dจะลบจากบรรทัดที่ 3 ไปยังจุดสิ้นสุดของไฟล์
เพียงเพิ่มวิธีอื่นในโหมดปกติพิมพ์ctrl+vจากนั้นGเลือกส่วนที่เหลือจากนั้นDฉันไม่คิดว่ามันจะมีประสิทธิภาพคุณควรทำเช่น @Ed Guiness, ชื่อไฟล์ -n 20> ใน linux
head -n <number_of_lines> <filename> > <truncated_filename>ไหน-nเป็นพารามิเตอร์สำหรับจำนวนของสายที่คุณต้องการจากด้านบน