1

我正在尝试对文件进行压缩,然后将结果保存在使用 mkfifo 创建的命名管道中,该管道最终将用于连接命令。我见过很多关于使用 mkfifo 压缩东西的例子,但在这种情况下几乎没有关于 gunzip 的例子。我的问题概述是:

获取两个 *.gz 文件的内容,而无需将它们实际解压缩到磁盘。为此,请捕获 gunzip -c *.gz 的流(这是我想使用命名管道作为保存流内容的文件的地方)。获取两个命名管道并对它们执行连接。Unix代码中的简化想法有点像......

mkfifo pipe1
mkfifio pipe2

gunzip -c fileA.gz > pipe1 &
gunzip -c fileB.gz > pipe2 &

join pipe1 pipe2

rm pipe1 pipe2

任何建议将不胜感激

4

1 回答 1

1

您实际上并不需要命名管道。Bash 有一种特殊的语法,可以在一个命令中执行此操作:

join <(gunzip -c fileA.gz) <(gunzip -c fileB.gz)
于 2013-04-04T14:17:07.303 回答