gpt4 book ai didi

linux - 我的进程需要读取从流传递的文件以节省空间(LINUX)

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

我需要这样做:

  1. 解压文件.7z
  2. 读取解压后的文件并将其传递给 Perl 进程,而不将其写入磁盘

像这样:

$解压文件.7z | perl_process > out_file

该进程需要从流中读取解压的文件,因为它非常大,我需要节省空间。

目前我有(但不能这样做):

  1. 解压 file.7z(生成非常大的 in_file)
  2. 进程in_file out_file(进程读取in_file并生成out_file)

您能给我一些关于如何实现我需要的想法吗?

最佳答案

那么每个存档只包含一个文件?

7z 命令行程序有一个 -so 选项,可以将解压后的输出发送到 STDOUT。这意味着您可以通过管道将其发送到 Perl 进程:

$ 7z e archive.zip -so | perl program.pl

或者您可以使用open来获取perl程序中解压的信息:

my $archive_file = 'archive.zip';

open my $archive_fh, '-|', "7z e $archive_file -so";

while ( <$archive_fh> ) {
# Process text line
}

如果您还没有 7zip 的命令行版本,那么您应该下载 p7zip,即 described here

关于linux - 我的进程需要读取从流传递的文件以节省空间(LINUX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660393/

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