I want to read all files in my current directory and would like to save the result on another directory. The code is below but could not get the files in the excepted directory.
Does anyone can help me.
for file in *.sorted.bam
do
samtools index "$file" -o "${file%.sort.bam}".bam | mv /mnt/d/Document/bt2Alignment_result
done
Thank you!
>Solution :
Here’s a fixed version of your code:
for file in *.sorted.bam
do
outfile="${file%.sorted.bam}.bam"
samtools index "$filepath" -o "$outfile"
mv "$outfile" /mnt/d/Document/bt2Alignment_result/
done
remark: you were using the glob *.sorted.bam while trying to strip the suffix .sort.bam
That I said, I don’t think that you even need to move the output file as samtools seems to have an option for specifying it directly.
Also, sometimes it’s convenient to specify a path in the glob (for example, ./datadir/*.sorted.bam), you should take that into account and do:
outdir="/mnt/d/Document/bt2Alignment_result"
for filepath in ./*.sorted.bam
do
filename=${filepath##*/}
samtools index "$filepath" -o "$outdir/${filename%.sorted.bam}.bam"
done