shell批处理中利用vi设置文件的fileformat

dos格式文件传输到unix系统时,会在每行的结尾多一个^M,即dos文件中的换行符“\r\n”会被转换为unix文件中的换行符“\n”,而此文件若是一个可执行文件的话,会导致此文件不能被执行,转换的方式有下面一个:

vi exec.sh
:set ff=unix(或者:set fileformat=unix)
:wq

如果以上步骤要求在一个shell批处理文件中完成,那么该怎么办?

可以这样:

vi +':w ++ff=unix' +':q' ${file}

 这样一条命令就可以搞定了,但是要严格注意上面空格的位置,不能多不能少。

参见:

http://stackoverflow.com/questions/82726/how-do-i-convert-dos-files-to-linux-files-in-vim

相关推荐