【问题标题】:How to replace crlf with lf in a single file如何在单个文件中用lf替换crlf
【发布时间】:2021-03-12 00:15:14
【问题描述】:

如何将具有 crlf 换行符的单个文件转换为具有 lf 换行符?

当我将文件推送到远程存储库时,git 已经自动正确处理文件的 crlf 到 lf 转换,但在这种特殊情况下,我没有推送到存储库。相反,我正在使用 HTML 表单上的文件字段将文件上传到要求文件具有 lf 行返回的网站。所以我需要能够单独转换这个文件。

我在这台计算机上可用的可能有用的工具是 git 和 Dreamweaver CC 2014.1。 (我猜 Word、写字板和记事本不是可行的选择,但我愿意接受更正。)

我在 Windows 7 上使用 git line 命令。

【问题讨论】:

    标签: windows git


    【解决方案1】:

    windows上的git安装通常包含dos2unix工具。

    dos2unix <file>
    

    但在您的情况下,您应该使用.gitattributes 来防止文件在 Windows 上被转换。

    .gitattributes 文件可能如下所示

    *.vcproj    eol=crlf
    *.sh        eol=lf
    

    来自.gitattributes documentation

    设置为字符串值“lf”

    此设置强制 Git 在签入时将行尾规范化为 LF,并防止转换为 CRLF 当文件被签出时。

    只需提交.gitattributes 文件,您的文件就会在每个以LF 行结尾的系统上检出。

    【讨论】:

    • 如果您没有 dos2unix,请使用 echo "$(perl -pe 's/\r\n?//' filename &gt; filename
    • @René Link,谢谢,.gitattributes 是一个永久的解决方案。
    • 到目前为止最好的解决方案。谢谢。
    【解决方案2】:

    在右侧底部面板上的 Notepad++ 中,右键单击区域 Windows (CR LF) 并选择 UNIX (LF) 这应该将所有 CRLF 替换为 LF

    下面是IntelliJ中右下角的设置

    下面是右下角的 VsCode 设置

    【讨论】:

      【解决方案3】:

      要将 Windows 样式的文本转换为 Unix 样式的文本:

      perl -pe 's/\r$//g' < windows_file.txt > unix_file.txt
      

      从 Unix 风格的文本转换为 Windows 风格的文本:

      perl -pe 's/(?<!\r)\n/\r\n/g' < unix_file.txt > windows_file.txt
      

      这个“Unix-to-Windows”命令是“安全的”,我的意思是它不会向已经是 Windows 格式的文件添加额外的回车。我希望有人能从中得到一些用处。

      【讨论】:

        【解决方案4】:

        Word 和 wordpad 是要避免的! 不要尝试用它修改一些代码,他们会为文件添加额外的代码。

        要转换行尾,只需使用Notepad++Scite,然后选择文件结尾:Windows、Mac、Linux。

        这是一个使用 Scite 的示例:

        【讨论】:

          【解决方案5】:

          对于单个文件,您可以使用 Notepad++ 替换实用程序:

          • 转到搜索 -> 替换(或 ctrl-h)
          • 在对话框中选择“扩展”搜索模式
          • 将“查找内容”设置为:\r\n
          • 将“替换为”设置为:\n
          • 点击“全部替换”

          【讨论】:

            【解决方案6】:

            在您的根文件夹中,创建一个文件 '.gitattributes' 并添加以下行:

            • eol=lf

            保存文件夹并:

            混帐添加。 ... 您项目的所有文件都将 LF

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2023-03-14
              • 2022-10-24
              • 1970-01-01
              • 1970-01-01
              • 2022-11-10
              • 2011-09-23
              • 1970-01-01
              • 2021-08-07
              相关资源
              最近更新 更多