gpt4 book ai didi

linux - 如何执行流式字符转换?

转载 作者:IT王子 更新时间:2023-10-29 00:36:15 25 4
gpt4 key购买 nike

<分区>

我将数据存储在磁盘上的文件中,这些文件太大而无法存储在主内存中。

我想通过 iconv 将这些数据从磁盘流式传输到数据处理管道中,如下所示:

zcat myfile | iconv -f L1 -t UTF-8 | # rest of the pipeline goes here

不幸的是,我看到 iconv 将整个文件缓冲在内存中,直到它在输出任何数据之前耗尽。这意味着我在管道中的阻塞操作上耗尽了我的所有主内存,而管道的内存占用在其他方面是最小的。

我试过这样调用 iconv:

stdbuf -o 0 iconv -f L1 -t UTF-8

但看起来 iconv 本身在内部管理缓冲 - 它与 Linux 管道缓冲区无关。

我在 Arch Linux 中使用 gblic 2.6 和 2.7 打包的二进制文件看到了这一点,并且我在 Debian 中使用 glibc 2.5 对它进行了复制。

有什么办法解决这个问题吗?我知道流式字符转换并不简单,但我认为这种常用的 unix 工具可以在流中工作;处理不适合主内存的文件并不少见。我是否必须推出链接到 libiconv 的自己的二进制文件?

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