gpt4 book ai didi

linux sed 仅在编辑第一行时读取整个文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:57 25 4
gpt4 key购买 nike

我目前正在处理大小可达 10 GB 的 CSV 文件,并且需要根据用例动态编辑标题。

为此,我正在使用:

sed -i '1,1s/id/id:ID(Person)/g' etc.

这具有仅编辑标题的预期效果,但可能需要 10 秒以上才能完成。我想这是因为整个文件仍在流式传输,但我无法找到阻止这种情况发生的方法。

任何想法或正确方向的观点将不胜感激。

最佳答案

sed 不是问题。问题是您正在流式传输 10GB 的文件。如果这是您对其执行的唯一操作,sed 可能不会比任何其他基于行的实用程序(awk 等)差多少。

如果您先读取整个文件,Perl 可能会做得更好,但是您的内存占用会非常大,并且根据您的系统,您可能会开始分页。

如果这是您要频繁且长时间做的事情,您可以通过读取更大的数据 block 来使用较低级别的语言做得更好,从而允许 block 层为您优化磁盘访问。如果您为 block 层保持足够大的“ block ”,但又足够小以避免分页,您应该能够达到最佳效果。

可能不值得一次转换。

关于linux sed 仅在编辑第一行时读取整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38229661/

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