循环目录中以.fastq.gz结尾的文件

问题描述 投票:0回答:1

我正在尝试使用 bash 脚本循环遍历目录中的文件,但它似乎不起作用。 我正在循环访问以

_1.fastq.gz
_2.fastq.gz

结尾的文件

这是脚本

fastq_dir="../script"
for sampleID in "${fastq_dir}"/*.fastq.gz
do
    r1=$(find "$sampleID" -name "*_1.fastq.gz")
    r2=$(find "$sampleID" -name "*_2.fastq.gz")
    sample_name=$(basename "$samleID")
    salmon quant -i salmon_index -l A -1 "$r1" -2 "$r2" --validateMappings -o salmon_quant/"$sample_name"/
done

该命令可能由于某种原因无法找到/查看某些文件。我期望鲑鱼定量函数循环遍历

fastq
文件并将输出发送到与
fastq
文件名对应的新目录。

bash for-loop
1个回答
0
投票

您的

for
循环正在为每个
$sampleID
文件设置
.fastq.gz
,每次在
_1
_2
之间交替。您不希望每个文件都处于单独的迭代中。

更改循环以匹配

_1.fastq.gz
。然后将
_1
替换为
_2
以获得其他文件名。并去掉后缀,得到常用的样本名称。

for r1 in "${fastq_dir}"/*_1.fastq.gz
do
    r2=${r1/_1/_2}
    sample_name=${r1%_1.fastq.gz}
    salmon quant -i salmon_index -l A -1 "$r1" -2 "$r2" --validateMappings -o salmon_quant/"$sample_name"/
done
© www.soinside.com 2019 - 2024. All rights reserved.