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