我有一个文本格式的样本名称列表,例如
Sample1
Sample2
etc....
我尝试使用下面的一个内容
查找并复制具有这些名称和特定扩展名的文件 find ./ | egrep fq.gz | fgrep -f list.txt | perl -ne 'chomp; system "cp $_ /data/copy_of_files/"'
不会抛出任何错误,但不会复制任何错误。
此行有效,直到我将输出传递给perl(正确的文件列表从fgrep打印到termial)所以我认为我的问题是perl部分......
有什么建议吗?
答案 0 :(得分:1)
建议:
cp
命令。只要你对自己的所作所为感到满意
看,附加| sh -x
。cp
命令中适当引用,但如果文件名中有任何可能,则需要采用不同的方法,我可能会写使用File::Find::Rule
在Perl中完成整个事情。答案 1 :(得分:1)
您的原始命令和此命令都适用于我:
find . -name '*.gz' | fgrep -f list.txt | \
perl -ne 'chomp; system("cp $_ <DIR>");'
您是否确认您的用户或群组具有/data/copy_of_files
的写入权限?