如果后续行短于 X 个字符,请从文本文件中删除 CR



我有一个巨大的文本/csv文件,有6 GB大。 创建时发生错误,并且尚未从字段中删除某些新行字符 (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 中的宏很方便,但速度很慢。

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

谢谢 沃尔夫冈

您可以搜索:

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

并替换为:

$1$2

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

最新更新