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

Cha*_*lov 19 windows git

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

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

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

我在Windows 7上并使用git line命令.

Ren*_*ink 23

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

dos2unix <file>
Run Code Online (Sandbox Code Playgroud)

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

一个.gitattributes文件可以是这样的

*.vcproj    eol=crlf
*.sh        eol=lf
Run Code Online (Sandbox Code Playgroud)

来自.gitattributes文档

设置为字符串值"lf"

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

只需提交.gitattributes文件,您的文件将在每个系统结帐时LF结束.

  • 如果您没有 dos2unix,请使用 `echo "$(perl -pe 's/\r\n?//' filename &gt; filename`。 (2认同)

Mal*_*Rao 19

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

在此处输入图片说明

下面是右下角的 IntelliJ 中的设置 在此处输入图片说明

下面是右下角的 VsCode 设置 在此处输入图片说明


小智 5

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

perl -pe 's/\r$//g' < windows_file.txt > unix_file.txt
Run Code Online (Sandbox Code Playgroud)

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

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

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