linux - 扫描并合并大文件中的两行(> 5 Gb)
问题描述
我有一个巨大的文件(> 5 Gb),有一堆错误的行。要修复它,我需要:
- 找到“分割”线
- 将“拆分”的代码行合并到预期的“单个”代码行中
- 保存更正后的文件
原始文件:(注意 #113 和 #114 行中的“拆分”代码)
...
#109=CARTESIAN_POINT('',(1.705232012855E0,-7.756877070089E-1,2.48166921056E0));
#110=CARTESIAN_POINT('',(1.705861274751E0,-7.7602308423645E-1,2.480686063358E0));
#111=CARTESIAN_POINT('',(1.705767565089E0,-7.764706427305E-1,2.472310353831E0));
#112=CARTESIAN_POINT('',(1.70570123242E0,-7.767839147852E-1,2.478226532593E0));
#113=CARTESIAN_POINT('',(1.7015612304515E0,-7.96452125292859E-1,
2.416457902634E0));
#114=CARTESIAN_POINT('',(1.701554931826E0,-7.9649012320387E-1,
2.4163429213930E0));
#115=CARTESIAN_POINT('',(1.705923512855E0,-7.756877070089E-1,2.481645657056E0));
#116=CARTESIAN_POINT('',(1.7058612374751E0,-7.7600123423645E-1,2.48068604563358E0));
...
预期结果:
...
#109=CARTESIAN_POINT('',(1.705232012855E0,-7.756877070089E-1,2.48166921056E0));
#110=CARTESIAN_POINT('',(1.705861274751E0,-7.7602308423645E-1,2.480686063358E0));
#111=CARTESIAN_POINT('',(1.705767565089E0,-7.764706427305E-1,2.472310353831E0));
#112=CARTESIAN_POINT('',(1.70570123242E0,-7.767839147852E-1,2.478226532593E0));
#113=CARTESIAN_POINT('',(1.7015612304515E0,-7.96452125292859E-1,2.416457902634E0));
#114=CARTESIAN_POINT('',(1.701554931826E0,-7.9649012320387E-1,2.4163429213930E0));
#115=CARTESIAN_POINT('',(1.705923512855E0,-7.756877070089E-1,2.481645657056E0));
#116=CARTESIAN_POINT('',(1.7058612374751E0,-7.7600123423645E-1,2.48068604563358E0));
...
我认为可以通过在 Unix、Linux、终端中使用剪切/粘贴/sed 命令的某种组合来实现,但我不知道该怎么做。
提前致谢!
解决方案
使用 GNU sed,您可以使用N
将下一行添加到模式空间,检查是否没有换行符,如果是则#
合并:
sed -E 'N;s/\n([^#])/\1/;P;D;' file
推荐阅读
- delphi - TIdSMTP:如何发送在电子邮件正文中正确显示的特殊字符
- clojure - 使用“rest”参数递归/嵌套
- javascript - 需要帮助制作一个无需使用 .math 或 .pow 函数即可计算指数/幂的计算器。使用循环
- snowflake-cloud-data-platform - 雪花用户的默认角色不存在
- python-3.x - Keras - UnboundLocalError:分配前引用的局部变量'batch_index'
- reactiveui - 当 ObservableCollection 中的属性发生变化时调用命令
- python - 从需要 headers={'user-agent', 'cookie', x-xsrf-token'} 的主机获取 json 数据
- csv - 如何对 CSV 数据进行 curl POST?
- java - 未能定义类 org.springframework.beans.PropertyAccessException
- python - 与 HDInsight 群集比较的 Databricks 查询