gnu-parallel - GNU 并行动态字符串替换中的错误
问题描述
我有 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 --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 不是名称的 * 部分)。
推荐阅读
- sql - 使用 Rollup 时重命名 Null 值
- svg - foreignObject 浏览器兼容性
- python - Python - 将 2D 坐标对列表转换为 2 个 X 和 Y 分量列表
- r - 熔化具有列表数据类型的 data.table(获取一个列中的值列表,以获得另一个列中的每个唯一值)
- javascript - JavaScript 条件重定向
- kubernetes - Kubernetes 是否包含 UUID 服务?
- php - cURL 结果作为另一个 cURL 参数
- javascript - 异步意外标识符
- javascript - Javascript:焦点不是函数
- android - 改变活动后亮度恢复正常