如何用AWK格式化超大文件?解决编辑器无法打开崩溃问题
使用AWK实现超大文件的格式转换
针对这个超大文件的格式转换需求,直接用以下AWK命令就能完成:
awk '/:/{if(prev) print prev $0; else print $0; prev=""; next} {prev=$0}' a
命令逻辑说明:
- 当遇到带冒号的行时:
- 如果之前已经存储了一行不带冒号的内容(比如
1),就把两者拼接后输出(变成1:23) - 如果这行本身就是符合目标格式的完整行(比如
1:67),直接输出即可 - 处理完毕后清空存储的前缀内容,继续处理下一行
- 如果之前已经存储了一行不带冒号的内容(比如
- 当遇到不带冒号的行时,先把该行内容暂存起来,等待下一行的后缀内容来拼接
内容的提问来源于stack exchange,提问作者Vickyz Setiawan
相关产品推荐
相关产品推荐

