bash 中带有 mkfifo 的 gunzip
Posted
技术标签:
【中文标题】bash 中带有 mkfifo 的 gunzip【英文标题】:gunzip with mkfifo in bash 【发布时间】:2013-03-26 16:16:34 【问题描述】:我正在尝试对文件进行压缩,然后将结果保存在使用 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
任何建议将不胜感激
【问题讨论】:
你有什么问题?该脚本是否不起作用(除了mkfifio
错字),还是什么?
【参考方案1】:
您实际上并不需要命名管道。 Bash 有一种特殊的语法,可以在一个命令中做到这一点:
join <(gunzip -c fileA.gz) <(gunzip -c fileB.gz)
【讨论】:
关于该语法的旁注......有没有一种方法可以在它们进行比较时从压缩线中获取值?以上是关于bash 中带有 mkfifo 的 gunzip的主要内容,如果未能解决你的问题,请参考以下文章
bash 中带有变量、大括号和哈希字符的 $0##... 语法是啥意思?