一次性更改多个文件的 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 样式的行尾。
【讨论】:
您能解释一下(?<!\r)\n
的含义吗,尤其是第一部分?<!
,谢谢!
(?<! )
是负面的后视。如果前缀不存在,则表示匹配。在这种情况下,它会检查 \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的主要内容,如果未能解决你的问题,请参考以下文章