并行化一个while循环,数组从bash中的文件读取

前端之家收集整理的这篇文章主要介绍了并行化一个while循环,数组从bash中的文件读取前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Bash中有一个while循环处理如下:
while IFS=$'\t' read -r -a line;
do
    myprogram ${line[0]} ${line[1]} ${line[0]}_vs_${line[1]}.result;
done < fileinput

它从具有此结构的文件中读取,以供参考:

foo   bar
baz   foobar

等等(制表符分隔).

我想使用GNU并行来并行化这个循环(因为条目很多并且处理速度很慢),但是我不知道如何将每行分配给数组,就像我在这里做的那样.

什么是可能的解决方案(GNU并行工作的替代方案)?

https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Use-a-table-as-input开始:

“””
table_file.tsv的内容

foo<TAB>bar
baz <TAB> quux

跑步:

cmd -o bar -i foo
cmd -o quux -i baz

你可以运行:

parallel -a table_file.tsv --colsep '\t' cmd -o {2} -i {1}

“””

所以在你的情况下它将是:

cat fileinput | parallel --colsep '\t' myprogram {1} {2} {1}_vs_{2}.result

猜你在找的Bash相关文章