在bash中循环访问具有通用名称的文件对

时间:2019-01-23 14:12:10

标签: bash

我有一个文件夹,其中包含18对具有相同名称的文件,但其中一个具有R1,另一个具有R2,例如SM000907_S1_R1.fastqSM000907_S1_R2.fastq。 我想在所有这些对中的循环中添加命令。

我已经尝试了以下循环,但是没有用(抛出错误“错误替换”):

for sample in ${seq 1 18}; do
    merge-paired-reads.sh SM000907_S$sample_R1.fastq SM000907_S$sample_R2.fastq > output
done

1 个答案:

答案 0 :(得分:3)

您可以使用$(seq 1 18){1..18},但不能同时使用两者。

此外,您的命令行不起作用,因为您无意中使用了不同的变量名。用大括号包围它们。

最后,作为一种好习惯,引用所有包含变量的字符串:

for sample in {1..18}; do
    merge-paired-reads.sh "SM000907_S${sample}_R1.fastq" "SM000907_S${sample}_R2.fastq" > output
done