我已经下载源代码从SVN在Linux上一些软件,并希望构建它:更换新线字符到Linux格式
$ ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
字符^ M是\ r回车符。当我将文件的行结尾更改为Linux格式时,它开始工作,但是有很多这些文件,并且手动难以完成。如何将目录及其子目录中的所有文件中的行结尾更改为Linux格式?
我已经下载源代码从SVN在Linux上一些软件,并希望构建它:更换新线字符到Linux格式
$ ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
字符^ M是\ r回车符。当我将文件的行结尾更改为Linux格式时,它开始工作,但是有很多这些文件,并且手动难以完成。如何将目录及其子目录中的所有文件中的行结尾更改为Linux格式?
使dos2unix转换目录中的每个文件。
find . -type f -exec dos2unix {} \;
像这样的事情会发现“* .SH”结尾的所有文件,并呼吁他们dos2unix
转换行结尾:
要查找所有文件,传递到-type f
不find
指定-name
参数。有关更多详细信息,请参阅A Unix/Linux find Command Tutorial。
您可以使用dos2unix(可能位于名为“tofrodos”的包中),这会在原地更改文件。
dos2unix input
或者如果你想这么做很简单,你可以用你的文件删除所有\ r。
tr -d '\r' <input> output
有一些像dos2unix/unix2dos这样的工具,旧的工具来自dos/todos。
对于'tr',+1是我最喜欢的工具之一! – 2011-12-01 13:58:17