如何在单个文件中用lf替换crlf

时间:2015-01-07 02:53:05

标签: windows git

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

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

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

我使用的是Windows 7并使用git line命令。

6 个答案:

答案 0 :(得分:20)

Windows上的git安装通常包括dos2unix工具。

dos2unix <file>

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

.gitattributes文件可能如下所示

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

来自.gitattributes documentation

  

设置为字符串值“lf”

     

此设置强制Git在签入时将行结尾标准化为LF并阻止转换为CRLF   文件签出时。

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

答案 1 :(得分: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格式的文件添加额外的Carriage-Returns。我希望有人可以使用它。

答案 2 :(得分:2)

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

enter image description here

答案 3 :(得分:1)

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

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

以下是使用Scite的示例:

scite

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

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

  • eol = lf

保存文件夹和:

git add。 ... 您项目的所有文件都会LF