【发布时间】:2018-10-02 20:25:52
【问题描述】:
当输入数据包含在许多文件中时,我需要一些帮助来优化 gnu 并行,这些文件必须连接在一起并通过管道传输到几个不同的命令中,每个命令都可以并行运行。
我正在从内容包含在许多文件中的存档中解析数据。目标是为整个档案按类型将不同的数据类型解析为文件。为此,我将文件连接在一起并将它们传送到每个解析命令。解析器接受标准输入上的数据,并将要解析的数据类型作为参数(例如“解析器 type1”来解析 type1 的数据等)
目前我有这样的事情:
parallel --xapply ::: \
'cat datadir/*.dat | parser type1 > type1.txt' \
'cat datadir/*.dat | parser type2 > type2.txt' \
'cat datadir/*.dat | parser type3 > type3.txt'
但这需要多次连接数据,这很慢,而且似乎不必要的昂贵。另外,我的理解是管道有吞吐量限制。有没有更好的方法来实现这一目标?
【问题讨论】: