我想编写一个 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