Answers:
将文件编码设置
UTF-8
为Unix,并将新文件的行尾设置为Unix,这样文本文件将以不特定于Windows操作系统的格式保存,并且最容易在异构开发人员桌面之间共享:
- 导航到“工作区”首选项(常规:工作区)
- 将文本文件编码更改为
UTF-8
- 将“新文本文件行分隔符”更改为“其他”,然后从选择列表中选择“ Unix”
- 注意:要转换现有文件的行尾,请在Eclipse中打开文件,然后选择
File : Convert Line Delimiters to : Unix
提示:您可以通过在Package Explorer中选择,然后转到菜单项来轻松转换现有文件File : Convert Line Delimiters to : Unix
File : Convert Line Delimiters to : Unix
命令一次“修复”项目中的所有文件。
有一个方便的bash实用程序- dos2unix
是DOS / MAC到UNIX的文本文件格式转换器,如果尚未在发行版中安装,则应该可以通过软件包管理器轻松安装。 dos2unix手册页
除了另一个答案中提到的Eclipse解决方案和工具外,还可以考虑使用flip。它可以在普通和Windows换行符之间“翻转”任何一种方式,并且可以做一些不错的事情,例如保留文件的时间戳和其他统计信息。
您可以像这样使用它来解决您的问题:
find . -type f -not -path './.git/*' -exec flip -u {} \;
(在使用git的情况下,我放入了一个子句来忽略.git目录,但是由于flip默认情况下会忽略二进制文件,因此您可能不需要此子句。)
find
无法以这种方式工作。
您可以尝试一下。问题是Windows在给定新行时会插入回车符和换行符。Unix系统只需插入换行符。因此,多余的回车符可能是您的日食弄糟换行符的原因。
从您的项目中获取一个或两个文件并将其转换。您可以使用Notepad ++这样做。只需打开文件,转到“格式”->“转换为Unix”(使用Windows时)。
在Linux中,只需在命令行上尝试:
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
sed -i 's/$`echo \\\r`//' yourfile.java
并使其自动化find . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;