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

Windows下高效处理1.21亿行文本:每行移除固定29字符的工具方案

处理超大文本文件的高效方案

针对1.21亿行的超大文本文件,GUI编辑器(如Notepad++)因需加载全量内容到内存导致卡顿,推荐使用流式命令行工具处理——这类工具逐行读写处理,内存占用极低,速度远超GUI工具。以下是Windows环境下的具体实现:

工具选择

优先选用以下两款GNU开源工具的Windows版本:

  • GNU Sed:擅长文本替换,语法简洁
  • Gawk:对结构化文本处理更灵活,性能优异

两款工具均可直接下载二进制包,解压后将exe所在路径添加到系统PATH环境变量,即可在CMD/PowerShell中直接调用。


具体命令实现

方法1:使用Sed

利用正则捕获日期部分,移除其后的29个字符:

sed -E "s/^([0-9]{4}\/[0-9]{2}\/[0-9]{2}).{29}/\1 /" 原始文件.txt > 处理后文件.txt
  • 解释:^([0-9]{4}/[0-9]{2}/[0-9]{2})捕获每行开头的日期(格式如2020/05/06),.{29}匹配日期后需移除的29个任意字符,替换为捕获的日期加一个空格,保留后续文件名部分。

方法2:使用Awk

通过字符串截取直接提取目标内容,性能略优于Sed:

awk '{print substr($0,1,10) " " substr($0,40)}' 原始文件.txt > 处理后文件.txt
  • 解释:substr($0,1,10)提取前10位日期字符,substr($0,40)从第40位开始提取后续内容(10位日期+29位待移除字符=39位,第40位为文件名起始),中间添加空格匹配期望格式。

注意事项

  1. 先取小样本文件测试命令,确认输出符合预期后再处理全量文件
  2. 输出文件需与输入文件不同名,避免误覆盖原始数据
  3. 若文件为UTF-8带BOM编码,可添加编码参数(如Sed的--encoding=utf-8)确保处理正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:45:26