如何在shell脚本中将当前目录的输出保存到另一个目录



我想读取当前目录中的所有文件,并将结果保存在另一个目录中。代码在下面,但无法获取例外目录中的文件。有人能帮我吗?

for file in *.sorted.bam
do 
samtools index "$file" -o "${file%.sort.bam}".bam | mv /mnt/d/Document/bt2Alignment_result
done

谢谢!

以下是您的代码的固定版本:

for file in *.sorted.bam
do
outfile="${file%.sorted.bam}.bam"
samtools index "$filepath" -o "$outfile"
mv "$outfile" /mnt/d/Document/bt2Alignment_result/
done

备注:您在尝试去掉后缀.sort.bam时使用了glob*.sorted.bam


也就是说,我认为你甚至不需要mv输出文件,因为samtools可以直接在你想要的地方创建它(使用-o选项(。另一方面,有时在glob中指定路径很方便,例如./datadir/*.sorted.bam,所以您应该这样做:

for filepath in ./*.sorted.bam
do
filename=${filepath##*/}
outpath=/mnt/d/Document/bt2Alignment_result/"${filename%.sorted.bam}.bam"
samtools index "$filepath" -o "$outpath"
done

在带有*.sorted.bam 的下一行中使用mv

for file in *.sorted.bam
do 
samtools index "$file" -o "${file%.sorted.bam}".bam 
mv *.sorted.bam /mnt/d/Document/bt2Alignment_result/
done

相关内容

  • 没有找到相关文章

最新更新