【问题标题】:Error in GNU parallel dynamic string replacementGNU 并行动态字符串替换中的错误
【发布时间】:2020-12-12 19:54:14
【问题描述】:

我有 50 多个文件对,其名称格式如下:AA-7R-76L1.clean.R1.fastq.gz、AA-7R-76L1.clean.R2.fastq.gz

我尝试通过以下方式使用并行:

parallel --plus echo {%R..fastq.gz} ::: *.fastq.gz |parallel 'repair.sh in1={}.R1.fastq.gz in2={}.R2.fastq.gz out1={}.repd.R1.fastq.gz out2={}.repd.R2.fastq.gz outs={}.singletons.fastq.gz repair'

--plus echo 应动态替换 R1.fastq.gz, R2.fastq.gz 以捕获样本名称,即HB-7R-25L0.clean。然后它应该将其提供给 repair.sh

我得到的错误是,第一部分提取了整个文件名并且没有捕获样本名称。因此 in1 和 in2 变为 AA-7R-76L1.clean.R1.fastq.gz.R1.fastq.gz and AA-7R-76L1.clean.R2.fastq.gz.R2.fastq.gz

这里有什么错误?

【问题讨论】:

  • 向我们展示parallel --dr 'repair.sh...的输出
  • 问题已解决。这是由于“版本错误”。旧版2016有错误,新版2020没有报错。

标签: gnu-parallel


【解决方案1】:

类似:

$ parallel --plus --dry-run  'repair.sh in1={} in2={/R1/R2} out1={/R1/fixed.R1} out2={/R1/fixed.R2} outs={%.R1.fastq.gz}_singletons.fastq repair' ::: *R1.fastq.gz

(假设 R1 和 R2 不是名称的 * 部分)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 2019-03-02
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多