如何将当前目录的输出保存到 shell 脚本中的另一个目录?
How to save outputs from current directory to another a directory in a shell script?
我想读取当前目录中的所有文件,并将结果保存在另一个目录中。代码如下,但无法获取例外目录中的文件。
有没有人可以帮帮我。
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
18=]
就是说,我认为您甚至不需要 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
我想读取当前目录中的所有文件,并将结果保存在另一个目录中。代码如下,但无法获取例外目录中的文件。 有没有人可以帮帮我。
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
18=]
就是说,我认为您甚至不需要 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
的下一行使用 mvfor file in *.sorted.bam
do
samtools index "$file" -o "${file%.sorted.bam}".bam
mv *.sorted.bam /mnt/d/Document/bt2Alignment_result/
done