2011-12-01 42 views
2

我已经下载源代码从SVN在Linux上一些软件,并希望构建它:更换新线字符到Linux格式

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

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

回答

2

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

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

像这样的事情会发现“* .SH”结尾的所有文件,并呼吁他们dos2unix转换行结尾:

​​

要查找所有文件,传递到-type ffind指定-name参数。有关更多详细信息,请参阅A Unix/Linux find Command Tutorial

2

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

dos2unix input 

或者如果你想这么做很简单,你可以用你的文件删除所有\ r。

tr -d '\r' <input> output 
+0

对于'tr',+1是我最喜欢的工具之一! – 2011-12-01 13:58:17

0

有一些像dos2unix/unix2dos这样的工具,旧的工具来自dos/todos。