gpt4 book ai didi

bash - 模拟 'named' 进程替换

转载 作者:行者123 更新时间:2023-11-29 09:12:01 28 4
gpt4 key购买 nike

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

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

但是,根据具体情况,这可能会令人厌烦且容易出错。

有没有办法模拟命名进程替换?即创建伪文件data.txt这将“展开”为流程替代zcat data.txt.gz每当它被访问时。与符号链接(symbolic link)一样,符号链接(symbolic link)将读取操作转发到另一个文件,但在这种情况下,它需要是一个临时命名管道。

谢谢。

附言。 Somewhat similar question


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

最佳答案

据我所知,你所描述的并不存在,尽管这是一个有趣的想法。它需要内核支持,以便打开文件实际上会运行任意命令或脚本。

最好的办法是将长命令保存到 shell 函数或脚本中,以降低调用进程替换的难度。

关于bash - 模拟 'named' 进程替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24060560/

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