【问题标题】:loop over pairs of files with common name in bash [duplicate]在bash中循环具有通用名称的文件对[重复]
【发布时间】:2019-06-17 03:45:29
【问题描述】:

我有一个包含 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

【问题讨论】:

    标签: bash


    【解决方案1】:

    您可以使用$(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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2015-04-27
      • 2018-10-14
      相关资源
      最近更新 更多