You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中使用GNU Parallel并从标准输入读取变量?

GNU Parallel 适配方案

直接使用如下命令即可实现16并行任务运行,无需创建中间脚本:

cut -f1 markers.tsv | parallel -j 16 'echo {} && zcat {}.faa.gz | muscle -out {}.msa'

原写法未生效的原因

  • GNU Parallel 默认使用{}作为输入行的占位符,无需额外用-I @指定替换规则,简化写法可以避免不必要的语法错误
  • 原写法中FAA变量的赋值属于冗余逻辑,直接用{}拼接文件名即可,减少变量传递可能带来的问题
  • 无需额外对占位符做引号包裹,GNU Parallel 会自动处理常规输入内容的转义

调试方法

如果需要预先验证命令拼接是否正确,可以添加--dry-run参数打印所有将要执行的命令,确认无误后移除该参数即可正式运行:

cut -f1 markers.tsv | parallel -j 16 --dry-run 'echo {} && zcat {}.faa.gz | muscle -out {}.msa'

内容的提问来源于stack exchange,提问作者O.rka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:48:02