小编art*_*tem的帖子

模拟"命名"流程替换

假设我有一个大的gzip压缩文件data.txt.gz,但通常需要将ungzipped版本提供给程序.当然,不是创建独立解压缩,而是data.txt可以使用进程替换语法:

./program <(zcat data.txt.gz)

但是,根据具体情况,这可能很烦人且容易出错.

有没有办法模拟命名的进程替换?也就是说,创建一个伪文件data.txt,zcat data.txt.gz只要访问它就会"展开"到进程替换中.与符号链接不同,将读取操作转发到另一个文件,但在这种情况下,它需要是临时命名管道.

谢谢.

PS.有点类似的问题


编辑(来自评论)实际的用例是拥有一个大型的gzip语料库,除了以原始形式使用外,还有时需要通过一系列轻量级操作(标记化,小写等)进行处理,然后输入到一些"更重"的代码.存储预处理的副本会浪费磁盘空间并重复重新输入完​​整的预处理管道可能会引入错误.同时,在运行中运行管道会产生很小的计算开销,因此需要一个长期存在的伪文件来隐藏详细信息.

unix bash named-pipes process-substitution

4
推荐指数
1
解决办法
81
查看次数

标签 统计

bash ×1

named-pipes ×1

process-substitution ×1

unix ×1