我有一个白色名单.txt。在这个txt中是一个类似于以下内容的文件名列表:
9853412_00000_0_0.vcf
7549682_00000_0_0.vcf
3589647_00000_0_0.vcf
我希望在特定的源目录中查找名称与白名单中的文件匹配的文件。然后,我想将匹配的文件复制到新的目标目录。
例如,如果我的源目录中的文件如下所示:
9853412_00000_0_0.vcf
7549682_00000_0_0.vcf
3589647_00000_0_0.vcf
8965423_00000_0_0.vcf
2547936_00000_0_0.vcf
5479241_00000_0_0.vcf
然后,我的脚本应该能够从源选择前3个VCF,并将它们复制到目标。
我已经试过这些剧本了。它们运行时没有错误消息,但没有文件可以从源文件被cp到目标文件,我不确定为什么。
# !/bin/sh
SOURCE="/my/source/dir/*.vcf"
TARGET="/my/target/dir/"
while IFS= read -r line; do
find $SOURCE -type f -name "$line" -exec cp {} $TARGET \;
done < whitelist.txt
# !/bin/sh
SOURCE="/my/source/dir/*.vcf"
TARGET="/my/target/dir/"
while IFS= read -r line; do
find $SOURCE -type f -name "${line}" -exec cp '{}' $TARGET \;
done < whitelist.txt
1条答案
按热度按时间xnifntxz1#
快到了,只要把
*.vcf
去掉就行了。