如何查找和连接具有不同字符但其根目录列在文本文件中的文件



所以我正在尝试连接前缀和后缀略有不同但具有相同根的文件。但是我想为文本文件中列出的所有"根"执行此操作。

到目前为止,我已经能够做到这一点,但一次一个根工作正常:

#works
find directory/ -type f -name ‘*ftsW*.fna' -exec cat {} ; > new_directory/ftsW.fna

但是,当我尝试遍历"roots.txt"文件中列出的所有根时,我得到了 txt 文件中列出的所有根的空文件。

#outputs empty files
filename='roots.txt'
filenames=`cat $filename`
for a in $filenames
do find directory/ -type f -name '*$a*.fna' -exec cat {} ; > new_directory/$a.fna
done

有谁知道我可以修复此代码?谢谢!

当你在循环中运行时,你将第一个文件写入你的目标,然后用下一个文件覆盖你的目标,然后再次覆盖它,依此类推。 所以你最终只会得到最后一个文件。 试试这个:

cat $(find directory/ -type f -name '*$a*.fna') > new_directory/$a.fna

这将一次猫化所有文件。

最新更新