ฉันมีไฟล์ที่มีขนาดใหญ่มาก (มากกว่า 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
เป็นพารามิเตอร์สำหรับจำนวนของสายที่คุณต้องการจากด้านบน