แยกไฟล์ออกเป็นไฟล์ย่อย ๆ หลาย ๆ ไฟล์แยกกันด้วยสัญลักษณ์ขึ้นบรรทัดใหม่


13

มียูทิลิตี้ที่แยกไฟล์ด้วยสัญลักษณ์ขึ้นบรรทัดใหม่หรือไม่? เช่นถ้าไฟล์มีบรรทัดต่อไปนี้

aa
bbb
cccc

หากฉันต้องการแยกเป็น 3 ไฟล์ผลลัพธ์ที่ต้องการจะเป็น:

aa, bbbและcccc(3 ไฟล์ที่แตกต่างกัน)

ฉันตรวจสอบsplitคำสั่งแล้วมันตัดเฉพาะไฟล์ตามขนาดไฟล์ไม่ใช่สิ่งที่ฉันต้องการ

หากฉันไม่ได้เขียนโปรแกรมอรรถประโยชน์ด้วยตนเองมีเครื่องมือมาตรฐานที่จะใช้หรือไม่?


ชื่อไฟล์ควรเป็นอะไร?
ราหุลปาติล

คุณต้องการสร้างไฟล์ของแต่ละบรรทัดหรือไม่ ฉันถูกต้องหรือไม่
ราหุลปาติล

คำตอบ:


14

ถ้าฉันไม่มีอะไรให้splitแยกตามบรรทัดถ้าคุณใช้-lสวิตช์:

   -l, --lines=NUMBER
          put NUMBER lines per output file

ดังนั้น

split -l 1 inputfile

ควรทำสิ่งที่คุณต้องการ


4
awk '{print > $0".txt" }'  inputfile

จะสร้างหนึ่งไฟล์ต่อหนึ่งบรรทัดที่ไม่ซ้ำกันใน inputfile ตั้งชื่อตามเนื้อหาของบรรทัดเหล่านั้น (พร้อม.txtนามสกุล) แต่ระวังว่าเมื่อถึงขีด จำกัด ของไฟล์ที่เปิดพร้อมกันawkการใช้งานบางอย่างจะล้มเหลว

หรือ

awk '{f = "output_file." NR; print $0 > f; close(f)}' inputfile

หากต้องการมีไฟล์เอาต์พุตที่มีหมายเลข


คุณอาจต้องการปิด () ไฟล์เอาต์พุตหลังจากเขียนมิฉะนั้นคุณจะพบจำนวนไฟล์ที่เปิดสูงสุดที่มีการใช้งาน awk ส่วนใหญ่
Stéphane Chazelas

ไม่ทราบว่า .. คุณสามารถทำเพื่อฉันได้ไหม ขอบคุณ ..
Rahul Patil

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.