【问题标题】:Convert multiple files from every possible EOL to CRLF将每个可能的 EOL 中的多个文件转换为 CRLF
【发布时间】:2020-08-03 02:43:11
【问题描述】:

我有所有可以想象到的 EOL 文件。我想一次性将它们标准化,而不是像我们谈论几千个那样一个一个地做。 我知道如何手动完成,所以请不要解释。

我认为所有可能的都是,从最常见到最不常见: CRLF, LF, CR-CRLF, CRCR-CRLF, CR, LFLF, CRCR, CRLF-CRLF 和 CRCRCR-CRLF(是的,只有一个文件)。

所有文件都有一致的 EOL,一个文件中没有混合的。修复后可能会留下一些奇怪的 CR 或 LF,可以不理会。​​p>

我希望所有文件都只有 CRLF。空行必须保持原样。

首先,我认为我需要对每个文件中的 EOL 进行一些很好的检测。它可以检查它是否重复至少 3 次,但有些只有一行。

我在这里制作了一些临时文件,完成后应该看起来像 CRLF 文件(里面只有 TXT 文件): https://www71.zippyshare.com/v/BNpRAijy/file.html

我用谷歌搜索了一整天,没有找到任何好的解决方案。

示例

1.只是 CRLF EOL,我想要的结果:

line1CRLF

line2CRLF

CRLF

line3CRLF

line4CRLF

CRLF

CRLF

line5CRLF

CRLF

CRLF

CRLF

line6CRLF

CRLF

2。 CRCRLF: 手动我会用 CRLF 替换 CRCRLF,用 \r\n 替换 \r\r\n 并再次对具有 CRCRCRLF 的文件重复一次,然后对那个孤独的 CRCRCRCRLF 再次重复。 但问题不是所有文件都有这种可能性,我上面列出的还有 5 个需要考虑。虽然只有 LF 和 CR 在这里没有太大问题,因为 Windows 记事本现在支持 Unix 和 MAC EOL,但包含它们仍然很好。

所以主要问题仍然是 LFLF,然后还有几个 CRCR 和 CRCR-CRLF 需要考虑。 最好是包括所有可能。

line1CR

CRLF

line2CR

CRLF

CR

CRLF

line3CR

CRLF

line4CR

CRLF

CR

CRLF

CR

CRLF

line5CR

CRLF

CR

CRLF

CR

CRLF

CR

CRLF

line6CR

CRLF

CR

CRLF

【问题讨论】:

  • 我认为你需要编写一个程序来依次访问每个文件。它将读取前几行并确定该文件的换行格式,然后相应地处理它。这不是 Notepad++ 的工作。
  • 谢谢,用 Python 写的。开个玩笑,程序员朋友已经有了,我就是想知道Notepad++有没有简单的方法。

标签: notepad++ batch-processing eol end-of-line


【解决方案1】:

使用 Notepad++,您可以:

  • Ctrl+Shift+F
  • 查找内容:\R+
  • 替换为:\r\n

\R+ 代表 1 个或多个任意类型的换行符。

屏幕截图:

【讨论】:

  • 也许这是一个开始,但这会删除所有对我不利的空行。请,如果您有时间,请尝试至少获得我列出的 7 个以匹配 CRLF 的 CRC32 之一。我很确定它一定比这更复杂。
  • @GrimReaper:请edit your question 并添加一些示例行和预期结果,而不是提供指向未知文件的链接。还添加所有约束,您还没有说您不想删除空行。
猜你喜欢
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多