将新行字符更改为Linux格式

时间:2011-12-01 13:52:21

标签: linux

我已经从Linux上的svn下载了一些软件的源代码,并希望构建它:

$ ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

字符^ M是\ r \ n回车符。当我将文件的行结尾更改为Linux格式然后它开始工作,但是有许多这些文件并且手动很难做。如何将目录及其子目录中所有文件的行结尾更改为Linux格式?

4 个答案:

答案 0 :(得分:2)

使dos2unix转换目录中的每个文件。

find . -type f -exec dos2unix {} \;

答案 1 :(得分:2)

您可以使用dos2unix(可能位于名为“tofrodos”的包中),这会就地更改文件。

dos2unix input

或者如果您想要这么做,您可以使用tr。

删除文件中的所有\ r \ n
tr -d '\r' < input > output

答案 2 :(得分:1)

这样的内容会找到以“* .sh”结尾的所有文件,并在其上调用dos2unix来转换行结尾:

find . -name "*.sh" -exec dos2unix {} \;

要查找所有文件,请将-type f传递给find,而不指定-name参数。有关详细信息,请参阅A Unix/Linux find Command Tutorial

答案 3 :(得分:0)

有dos2unix / unix2dos等工具,较旧的工具是fromdos / todos。