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

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

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

【问题讨论】:

标签: notepad++ batch-processing eol


【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 1970-01-01
      • 2013-07-06
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 2019-02-23
      相关资源
      最近更新 更多