我想在一个 .txt 文件中执行多个 linux 命令行(并行)。我正在使用 GNU 并行

I want to execute multiple linux command lines in one .txt file(as parallel). I am using GNU parallel

我在读取一个 .txt 文件中的多行 Linux 命令时遇到问题。 我想使用 GNU 并行。

当我阅读教程时...我无法正确理解它。

我有一个 .txt 文件。它有多个这样的命令行。

我从官方教程中得到的唯一帮助是阅读多个 .txt 文件。

我该如何解决这个问题?

让我们假设您有这样的文件:

/data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam

你想要 运行:

delly call -t DEL -n -q 15 -0 6_LEP-11_00186s.md.ir.br.bam.DEL.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta /data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam /data/jaesoon/DB/DB3/3_blood_4s_merged.bam
delly call -t DUP -n -q 15 -0 6_LEP-11_00186s.md.ir.br.bam.DUP.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta /data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam /data/jaesoon/DB/DB3/3_blood_4s_merged.bam
delly call -t INV -n -q 15 -0 6_LEP-11_00186s.md.ir.br.bam.INV.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta /data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam /data/jaesoon/DB/DB3/3_blood_4s_merged.bam
delly call -t TRA -n -q 15 -0 6_LEP-11_00186s.md.ir.br.bam.TRA.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta /data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam /data/jaesoon/DB/DB3/3_blood_4s_merged.bam
delly call -t INS -n -q 15 -0 6_LEP-11_00186s.md.ir.br.bam.INS.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta /data/jaesoon/DB/DB6/6_LEP-11_001E6s.md.ir.br.bam /data/jaesoon/DB/DB3/3_blood_4s_merged.bam

那么你可以通过以下方式做到这一点:

parallel delly call -t {1} -n -q 15 -0 {2/}.{1}.bcf -g /data/jaesoon/DB/DB6/human_g1k.v37.fasta {2} /data/jaesoon/DB/DB3/3_blood_4s_merged.bam ::: DEL DUP INV TRA INS ::: /data/jaesoon/DB/DB6/*.bam

我可以建议您阅读 GNU Parallel 2018(可在 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html 或下载:https://doi.org/10.5281/zenodo.1146014) 阅读 至少第 1+2 章。它应该花费你不到 20 分钟的时间和你的命令行 会因此爱上你的。