bash:使用文件名列表来连接目录中的匹配文件,并将所有文件保存在新目录中

问题描述

我在三个不同目录中都有大量文件。对于其中的某些文件,另一个目录中存在一个具有相同名称的文件。其他文件仅存在于一个目录中。我想使用bash将三个目录中的所有文件复制到一个新目录中,但是对于具有多个目录中具有相同名称的文件的文件,我想在保存到新目录之前跨目录合并文件内容

以下是我的文件结构的示例:

ls dir1/
file1.txt
file2.txt
file4.txt

ls dir2/
file2.txt
file5.txt
file6.txt
file9.txt

ls dir3/
file2.txt
file3.txt
file4.txt
file7.txt
file8.txt
file10.txt

使用此示例,我想生成一个包含file1.txt到file10.txt的新目录,但是在新目录中串联了同名文件的内容(例如file2.txt,file4.txt)。

我在我的三个目录中都有一个包含所有文件名的唯一列表(列表中包含每个唯一文件名的单个实例)。到目前为止,我已经拿出代码来从一个目录中获取文件名列表,并将这些文件与第二目录中具有相同名称的文件连接起来,但是我不确定如何使用我的文件名列表作为参考串联和保存文件(而不是第一个目录中ls的输出)。关于如何修改的任何想法?非常感谢!

PATH1='/path/to/dir1'
PATH2='/path/to/dir2'
PATH3='/path/to/dir3'

mkdir dir_new

ls $PATH1 | while read FILE; do

    cat $PATH1/"$FILE" $PATH2/"$FILE" $PATH3/"$FILE" >> ./dir_new/"$FILE"

done

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)