You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用低内存单行代码将文件中短行追加至前一行

高效处理大文件:将短行追加到前一行的单行解决方案

你的问题核心是处理大文件时内存占用过高,原来的方法把整个文件转换成单行再切割,会把所有内容加载到内存里,这对大文件来说完全不可行。我们可以用awk写出一个逐行处理、内存占用极低的单行命令,完美解决这个问题。

解决方案代码

awk '{if(length($0)==8){if(prev!=""){print prev; prev=$0}else{prev=$0}}else{prev=prev $0}}END{print prev}' FILENAME

代码逻辑解释

这个命令全程逐行处理文件,只在内存中保存当前待合并的内容,不会加载整个文件:

  • 当遇到长度为8的标准行时:
    • 如果之前已经缓存了内容(可能是合并了短行的前一行),先输出缓存的内容,再把当前标准行设为新的缓存
    • 如果是第一行且是标准行,直接把它设为缓存
  • 当遇到长度小于8的短行时:直接把它追加到缓存的内容后面
  • 最后在END块中输出剩下的缓存内容(处理文件最后一行的情况)

示例验证

假设你的输入文件内容是:

ABCDEFGH
ABCDEFGH
ABC
ABCDEFGH
ABCDEFGH
ABCD
ABCDEFGH

执行命令后会得到输出:

ABCDEFGH
ABCDEFGHABC
ABCDEFGH
ABCDEFGHABCD
ABCDEFGH

完全符合你期望的合并效果,而且不管文件多大,内存占用都保持在极低水平。

内容的提问来源于stack exchange,提问作者grapefruit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:52:00