1

我有一个 6 GB 大的大型文本/csv 文件。创建时发生错误,并且尚未从字段中删除一些换行符(CRLF),因此某些行被破坏

这里是一个简化版本:

例如

Field1<TAB>Field2<TAB>Field3<TAB>Field4
Field1<TAB>Field2<TAB>Field3<TAB>Field4
Field1<TAB>Field2<TAB>Field3
<TAB>Field4
Field1<TAB>Field2<TAB>Field3<TAB>Field4

所以第 3 行中的字段 3 有一个 CR,因此该行被断开

我不想重新创建需要太长时间的 CSV 文件,但必须有一种方法可以在正则表达式和工具的帮助下解决这个问题。

很容易识别断线。它们的长度少于 50 个字符。所有好的行都超过 50 个字符

所以我需要一个步骤: * 识别短行 * 删除该行前面的 CRLF * 对整个文件执行此操作

我可以在 UltraEdit 中创建一个宏并搜索 Perl Regex

^.{0,50}$ 

并更换前面的CRLF。这行得通,但需要的时间太长。UltraEdit 中的宏很方便,但速度很慢。

还有其他方法吗?我可以使用带有一些工具的正则表达式来搜索/替换吗?

谢谢,沃尔夫冈

4

1 回答 1

1

您可以搜索:

^(.{1,50})\n(.{1,50}\n)

并替换为:

$1$2

演示(用于 30 个字符或更少的虚线):https ://regex101.com/r/pr5JhW/1

于 2018-10-24T07:05:29.097 回答