gpt4 book ai didi

Linux 两个进程读取标准输入(osmosis osm)

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:23 25 4
gpt4 key购买 nike

我需要解压缩一个非常大的文件 (100GB+) 并让它由两个并行线程处理。问题是我想使用 STDIN/STDOUT 同时向两个线程提供未压缩的内容

bzip2 north-america-latest.osm.bz2 |  \
osmosis --read-xml file=- \ # get first thread
--tf accept-ways highway=motorway
outPipe.0=motorway \
--fast-read-xml file=- # here another thread
--tf accept-nodes place=\*
outPipe.0=places \
--merge inPipe.0=motorway inPipe.1=places

语法可能不是那么透明,但想法是两个线程从相同的标准输入读取并基本上窃取彼此的数据。

我需要以某种方式让每个线程拥有自己的 STDIN(或另一个临时内存流)并在它们之间拆分 bzip2 的输出。

最佳答案

您可以使用 tee 将输出拆分到多个进程

bzip2 north-america-latest.osm.bz2 | tee >(command1) | command2

您可以拥有任意数量的命令。

bzip2 north-america-latest.osm.bz2 | tee >(command1) >(command2) >(command3) | command4

管道后面的命令是可选的。如果省略,它将继续转到标准输出。

关于Linux 两个进程读取标准输入(osmosis osm),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com