วิธีการรวมหลายไฟล์เป็นไฟล์เดียวในไดเรกทอรีที่กำหนด


0

ฉันต้องการเขียนเชลล์สคริปต์เพื่อรวมเนื้อหาของหลายไฟล์ในไดเรกทอรีที่กำหนด

DIR1 contains sample1.txt sample2.txt
    sample1.txt contents  :---this is sample1 file---
    sample2.txt contents  :---this is sample2 file---

DIR2 contains demo1.txt demo2.txt
    demo1.txt contents  :---this is demo1 file---

ฉันลองวิธีแก้ปัญหา:

(find /home/DIR1  /home/DIR2 -type f | xargs -i cat {} ) > /result/final.txt

ฉันได้รับเอาต์พุตเช่นกัน แต่ลำดับของไฟล์เปลี่ยนไป

this is sample2 file---  this is sample1 file---  this is demo1 file---

ฉันต้องการไฟล์ที่ส่งออกแตกต่างกันไปในแต่ละบรรทัด ทำอย่างไร มีวิธีการรักษาลำดับของไฟล์ที่ส่งออกเช่นถ้าฉันต้องการวางไฟล์ของเฉพาะที่ด้านบนหรือดังนั้น? และการใช้คืออะไร " xargs -i " ตัวเลือกใน cmd?

ขอบคุณ


ไฟล์ใดที่คุณพยายามจะผสาน?
kenorb

คำตอบ:


1

คุณสามารถใช้สิ่งนี้:

(find directory -type f | xargs -i cat {} ) > TOTAL

ค้นหาไฟล์ทั้งหมดในไดเรกทอรีและใส่เนื้อหาทั้งหมดใน TOTAL


ฉันต้องการรวมเนื้อหาตามลำดับของไฟล์ที่กำหนดฉันควรเพิ่มอะไรใน cmd ข้างต้น
user

กรุณาเพิ่มตัวอย่างเกี่ยวกับสิ่งนี้เพราะมันไม่ชัดเจนในสิ่งที่คุณคาดหวัง
alphamikevictor

ฉันได้แก้ไขรหัสข้างต้นโปรดตรวจสอบ
user

คำสั่งดังกล่าวใช้งานได้ แต่มันไม่ได้เพิ่มเนื้อหาของไฟล์ใหม่ลงในบรรทัดใหม่ว่าจะทำอย่างไรให้เหมือนเดิม?
user

2

คุณต้องเข้าไปยังไดเรกทอรีนั้นโดยตรง:

cat /home/me/mydir/* > /home/me/finalData.txt

ไม่ฉันไม่สามารถเขียนเชลล์สคริปต์ได้
user

@ashwini คุณหมายถึงอะไร คุณสามารถแชร์สคริปต์ของคุณได้ไหม?
kenorb

ฉันต้องเขียนเชลล์สคริปต์ซึ่งจะเรียกใช้จากตำแหน่ง [ฐาน] อื่นนอกเหนือจาก / home / me / mydir / location
user
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.