复制并粘贴到新文件,维护LF与CR?

时间:2016-11-10 20:36:57

标签: hl7 hl7-v2 emeditor

我正在使用EmEditor手动拆分一些大文件(3GB +)。我只花了一个小时这样做才意识到新文件只有Carriage Returns,其中旧文件有Line Feeds和Carriage Returns。

这些是HL7文件,所以这很重要......

如何在复制/粘贴时保留特殊字符?

1 个答案:

答案 0 :(得分:1)

如果你丢失了你的LF字符,我假设这是一个由Windows系统生成的文件,它已经在基于Unix的系统中被引入和修改/操作。我已经在这两个平台之间遇到了这个问题,因为Windows读取了一个新行,因为CRLF和Unix只查找CR,如上所示。

我已经成功地在两个平台之间自动执行文件移动/操作过程,并且特别是在这个CRLF问题上,使用在每行末尾添加LF的perl脚本。转换可以双向进行,并且有关如何利用perl执行此操作的详细说明(以及解决此问题的其他方法)位于此处:https://kb.iu.edu/d/acux

具体来说,您可以从www.perl.org下载perl安装(它是免费的),然后运行以下代码,调用此脚本应该在perl中运行:

perl -p -e' s / \ n / \ r \ n /' < unixfile.txt> winfile.txt

在Windows系统的上下文中,我使用上面的代码创建一个.bat文件,创建一个窗口任务来自动化.bat,并设置适当的"开始"目录是文件转换的位置。根据上面的代码,我会在任何名为unixfile.txt的文件中读取,将CRLF字符添加到包含CR的每一行,并吐出一个名为winfile.txt的新文件,该文件在每行上都使用CRLF格式正确。

如果您仍然在努力解决这个问题,或者如果您对我建议的任何部分遇到问题,请随时告诉我。我做了一些文件转换,我是接收Unix文件的Windows系统,并且我已成功自动完成转换和交付文件,所以我希望你觉得这很有帮助!