如何在单个文件中用 lf 替换 crlf
How to replace crlf with lf in a single file
如何将具有 crlf 行 returns 的单个文件转换为具有 lf 行 returns?
当我将文件推送到远程存储库时,git 已经正确地自动处理文件的 crlf 到 lf 转换,但在这种特殊情况下,我没有推送到存储库。相反,我正在使用 HTML 表单上的文件字段将文件上传到要求文件具有 lf 行 returns 的网站。所以我需要能够单独转换这个文件。
我在这台计算机上可用的可能有用的工具是 git 和 Dreamweaver CC 2014.1。 (我猜 Word、写字板和记事本不是可行的选择,但我愿意接受更正。)
我在 Windows 7 并使用 git 行命令。
要避免使用 Word 和写字板! 从不尝试用它修改一些代码,他们会为文件添加额外的代码。
要转换行尾,只需使用 Notepad++ or Scite,然后选择文件结尾:Windows、Mac、Linux.
这是一个使用 Scite 的例子:
windows 上的 git 安装通常包含 dos2unix
工具。
dos2unix <file>
但在您的情况下,您应该使用 .gitattributes
来防止文件在 windows 上被转换。
.gitattributes
文件可以如下所示
*.vcproj eol=crlf
*.sh eol=lf
来自.gitattributes documentation
Set to string value "lf"
This setting forces Git to normalize line endings to LF on checkin and prevents conversion to CRLF
when the file is checked out.
只需提交 .gitattributes
文件,您的文件将在每个以 LF
行结尾的系统上检出。
要从 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"命令是"safe",我的意思是它不会向已经是Windows格式的文件添加额外的Carriage-Returns .我希望有人能从中得到一些用处。
对于单个文件,您可以使用 Notepad++ 替换实用程序:
- 转到搜索 -> 替换(或 ctrl-h)
- 在对话框中select"Extended"搜索模式
- 将"Find What"设置为:
\r\n
- 将"Replace With"设置为:
\n
- 点击"Replace All"
在右侧底部面板的 Notepad++ 中,右键单击区域 Windows (CR LF) 和 select UNIX (LF) 这应该将所有 CRLF 替换为 LF
下面是右下角IntelliJ中的设置
下面是右下角VsCode的设置
在您的根文件夹中,创建一个文件“.gitattributes”并添加以下行:
- eol=lf
保存文件夹并:
git 添加 .
...
您项目的所有文件都将 LF
如何将具有 crlf 行 returns 的单个文件转换为具有 lf 行 returns?
当我将文件推送到远程存储库时,git 已经正确地自动处理文件的 crlf 到 lf 转换,但在这种特殊情况下,我没有推送到存储库。相反,我正在使用 HTML 表单上的文件字段将文件上传到要求文件具有 lf 行 returns 的网站。所以我需要能够单独转换这个文件。
我在这台计算机上可用的可能有用的工具是 git 和 Dreamweaver CC 2014.1。 (我猜 Word、写字板和记事本不是可行的选择,但我愿意接受更正。)
我在 Windows 7 并使用 git 行命令。
要避免使用 Word 和写字板! 从不尝试用它修改一些代码,他们会为文件添加额外的代码。
要转换行尾,只需使用 Notepad++ or Scite,然后选择文件结尾:Windows、Mac、Linux.
这是一个使用 Scite 的例子:
windows 上的 git 安装通常包含 dos2unix
工具。
dos2unix <file>
但在您的情况下,您应该使用 .gitattributes
来防止文件在 windows 上被转换。
.gitattributes
文件可以如下所示
*.vcproj eol=crlf
*.sh eol=lf
来自.gitattributes documentation
Set to string value "lf"
This setting forces Git to normalize line endings to LF on checkin and prevents conversion to CRLF when the file is checked out.
只需提交 .gitattributes
文件,您的文件将在每个以 LF
行结尾的系统上检出。
要从 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"命令是"safe",我的意思是它不会向已经是Windows格式的文件添加额外的Carriage-Returns .我希望有人能从中得到一些用处。
对于单个文件,您可以使用 Notepad++ 替换实用程序:
- 转到搜索 -> 替换(或 ctrl-h)
- 在对话框中select"Extended"搜索模式
- 将"Find What"设置为:
\r\n
- 将"Replace With"设置为:
\n
- 点击"Replace All"
在右侧底部面板的 Notepad++ 中,右键单击区域 Windows (CR LF) 和 select UNIX (LF) 这应该将所有 CRLF 替换为 LF
下面是右下角IntelliJ中的设置
下面是右下角VsCode的设置
在您的根文件夹中,创建一个文件“.gitattributes”并添加以下行:
- eol=lf
保存文件夹并:
git 添加 . ... 您项目的所有文件都将 LF