一次性更改多个文件的 EOL

Posted

技术标签:

【中文标题】一次性更改多个文件的 EOL【英文标题】:Change EOL on multiple files in one go 【发布时间】:2012-07-05 16:47:54 【问题描述】:

Notepad++(甚至使用其他工具)有没有办法一次性在多个文件上自动更改行尾

即将 Windows EOL (CRLF) 和 UNIX EOL (LF) 文件的混合转换为所有 Windows EOL (CRLF)

【问题讨论】:

如果notepad++不是硬性要求,这里的信息可能是相关的:***.com/questions/3110031/… 【参考方案1】:

我有 Notepad++ 6.1.2。 在“编辑”菜单中,您有完全符合您需要的“EOL 转换”。

【讨论】:

以文件为基础工作,不能应用于整套文件。 你读过问题的标题吗?您看到“更改多个文件的 EOL”部分了吗? 您将打开多个文件以按顺序对多个文件执行此操作。正如他所说,“一口气”最初并不存在。 事实上这个答案对我很有用,因为我需要在单个文件中更改 EOL,我不知道如何。 有用的答案,因为这首先出现在 Google 中【参考方案2】:

替换 对话框可以处理 EOL 等扩展字符。只需将“搜索模式”更改为“扩展”,您就可以使用 EOL(Windows 中的 \r\n 或 Unix 中的 \n)、制表符 (\t) 等。

您还可以使用对话框的在文件中查找选项卡来跨多个文件进行替换。

【讨论】:

请注意,如果所有您的文件不是已经 unix-style,则此解决方案将不起作用。由于将\n 替换为\r\n 也会将\r\n 转换为\r\r\n -1 不更改 Edit>EOL 转换(请参阅屏幕截图状态栏中的 Dos\Windows),按 ENTER 将插入错误的 EOL - 混合 EOL 甚至比保持任何标准 将 \n 替换为 \r\n。然后将 \r\r\n 替换为 \r\n。瞧! 为什么您的屏幕截图示例在Find what 中显示\t?制表符与更改行尾无关,对吧? 太棒了...它在notepad++编辑器中完美运行...它节省了大量的精力,我们将通过手动更改来花费【参考方案3】:

使用“在文件中查找”功能 (Ctrl + Shift + F)。将左下角的搜索模式更改为“正则表达式”。

在“查找内容”框中,使用以下模式:

(?<!\r)\n

替换为:

\r\n

选择您的目录并指定任何文件类型过滤器。如果需要,请选中“在所有子文件夹中”。点击“在文件中替换”。

它的作用是用 \r\n 替换当前没有以回车符 (\r) 开头的任何换行符 (\n)。所以它不会匹配已经是 Windows 样式的行尾。

【讨论】:

您能解释一下(?&lt;!\r)\n 的含义吗,尤其是第一部分?&lt;!,谢谢! (?&lt;! ) 是负面的后视。如果前缀不存在,则表示匹配。在这种情况下,它会检查 \r,并且只有在 \n 前面没有 \r 时才会匹配。 是的。我同意 rtpHarry。这是我的回答中的这一部分:“当前 not 前面有回车符 (\r) 的任何换行符 (\n)”。 最复杂的解决方案! 从技术上讲,这是这个页面上最准确、最完整的答案。【参考方案4】:

使用正则表达式替换所有

(\r?\n)|(\r\n?)

\r\n

这会将所有可能的行结束模式(单个 \r、\n 或 \r\n)匹配回 \r\n (Windows)。

要对多个文件进行操作,可以:

在“替换”选项卡中使用“全部替换所有打开的文档”。您必须先将所有文件拖放到 Notepad++ 中。您可以控制对哪个文件进行操作,但如果有数百或数千个文件可能会很慢。 “在文件中查找”选项卡中的“在文件中替换”,按您选择的文件过滤器,例如,指定目录下的 *.cpp *.cs。

【讨论】:

最佳答案,因为它适用于所有风格的行尾。谢谢! 这是最好最简单的答案!【参考方案5】:

谷歌搜索 1 小时后,我为多个文件/文件夹找到的唯一 WORKING 解决方案是:

安装PyCham试用模式, 打开并选择您的项目文件夹/文件夹并按照屏幕截图进行操作

【讨论】:

也可以在 IntelliJ IDEA 社区版中使用,它是免费的,不需要试用。 IntelliJ IDEA.【参考方案6】:

通过discussion找到了这个解决方案:

您也可以通过“设置”在notepad++中设置默认EOL -> “首选项”->“新建文档/默认目录”然后选择 格式框下的“Unix/OSX”。

注意:始终可以使用命令行使用带外选项:

unix2dos *.cmd
dos2unix *.sh

【讨论】:

【参考方案7】:

将多个文件以递归方式转换为一个目录。只需在 Notepad++ 上安装 PythonScript,然后使用下面的脚本

https://gist.github.com/bjverde/583c2ee8b386994f3a1f8acdea3b7ed2

【讨论】:

以上是关于一次性更改多个文件的 EOL的主要内容,如果未能解决你的问题,请参考以下文章

删除多个文件中EOL处的空白

使用 Summernote File 一次将多个文件上传到服务器

在 Python 中一次更改多个元素

如何在mysql中一次更改多个表?

如何在一次操作中更改多个 PostgreSQL 表的架构?

我可以使用 subversion 和 Beyond Compare 一次区分多个文件吗?