如何将多个文件合并为给定目录中的单个文件

如何将多个文件合并为给定目录中的单个文件

我想编写一个 shell 脚本来合并给定目录中的多个文件的内容。

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 中的选项有什么用?

谢谢。

答案1

你可以使用这个:

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

查找目录中的所有文件并将所有内容放入 TOTAL 中。

答案2

您需要直接进入该目录:

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

相关内容