我已经从Linux上的svn下载了一些软件的源代码,并希望构建它:
$ ./configure
bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory
字符^ M是\ r \ n回车符。当我将文件的行结尾更改为Linux格式然后它开始工作,但是有许多这些文件并且手动很难做。如何将目录及其子目录中所有文件的行结尾更改为Linux格式?
答案 0 :(得分:2)
使dos2unix转换目录中的每个文件。
find . -type f -exec dos2unix {} \;
答案 1 :(得分:2)
您可以使用dos2unix(可能位于名为“tofrodos”的包中),这会就地更改文件。
dos2unix input
或者如果您想要这么做,您可以使用tr。
删除文件中的所有\ r \ ntr -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。