如何将具有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)
设置为字符串值"lf"
此设置强制Git在签入时将行结尾标准化为LF,并在签出文件时阻止转换为CRLF.
只需提交.gitattributes
文件,您的文件将在每个系统结帐时LF
结束.
小智 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 格式的文件添加额外的回车。我希望有人能从中得到一些好处。