วันเสาร์ที่ 28 ตุลาคม พ.ศ. 2566

รวม text file หลายๆ ไฟล์ให้เป็นไฟล์เดียว ด้วยคำสั่งเดียว

วิธีการเอา text file หลายๆ ไฟล์ มารวมให้เป็นไฟล์เดียว โดยไม่ต้องมาเปิดไฟล์แล้วคัดลอกมาแปะด้วยมือทีละไฟล์ๆ

ตัวอย่างสำหรับเหตุการณ์นี้ อย่างเช่นในกรณีที่เอาเนื้อหานิยายแต่ละตอน แปลงให้เป็น .md (markdown) มาแล้ว และต้องการเอามารวมให้เป็นไฟล์เดียว เพื่อจะแปลงเป็น html

วิธีการคือสร้าง directory แล้วโยนทุกไฟล์ไปใส่ที่เดียวกันให้หมด ตั้งชื่อให้เป็นตัวเลขเรียงตามลำดับ จากนั้นเปิด terminal แล้ว cd เข้าไปใน directory จากนั้นก็ใช้คำสั่ง

for file in *.txt; do (cat "${file}"; echo) >> output.xxx; done


ก็จะเป็นการเอาเนื้อหาจากทุกไฟล์มาเชื่อมต่อกัน สร้างเป็นไฟล์ชื่อ output.txt โดยจะใส่ \n เข้าไปท้ายเนื้อหาของทุกไฟล์ให้ด้วย (จากคำสั่ง echo)

แต่ถ้าต้นฉบับของเรา เป็นนามสกุล .md ก็ต้องแก้ไขคำสั่งเป็น

for file in *.md; do (cat "${file}"; echo) >> output.xxx; done

เป็นอันเสร็จเรียบร้อย

สาเหตุที่ output เป็นนามสกุล .xxx ก็เป็นเพราะถ้าตั้งเป็น .txt หรือ .md แล้ว เวลาที่สั่งแปลง มันจะเกิดปัญหาว่าไฟล์ที่เปิดขึ้นมาอ่านข้อมูล เป็นไฟล์เดียวกับไฟล์ที่จะบันทึก ดังนั้นเลยต้องตั้งนามสกุลให้ต่างไป เสร็จแล้วค่อยมาเปลี่ยนเป็น .txt หรือ .md

+ + + + +

[ Reference ]

ubuntu merge text files

https://askubuntu.com/questions/318777/combine-multiple-text-files-into-one-file

ไม่มีความคิดเห็น:

แสดงความคิดเห็น