DOS和UNIX转换

问题描述:

  在windows下编辑的shell脚本,上传到linux执行失败

分析:

  Windows和Linux平台表示回车的方法不一样

解决办法:

使用dos2unix

  一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:

  # dos2unix keep.sh

  上面的命令会去掉行尾的^M符号。

使用vim

  使用方法如下:

  # vim keep.sh

  DOS转UNIX::setfileformat=unix

  UNIX转DOS::setfileformat=dos

  :wq

  如果你需要把Unix文本文件转换为DOS文本文件,输入:setfileformat=dos,你也可以使用ff来替代fileformat,此时可以输入:set ff=dos。

注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:

  setfileformats=dos,unix

  设置完成后,使用vim打开DOS文本文件就不会显示^M字符了。

使用perl

   Perl是相当直接,你添加或删除掉文件每行结尾的CR字符。

  DOS转UNIX:perl -p -e 's/\r$//' <keep.sh> unixfile.sh

  UNIX转DOS:perl -p -e 's/$/\r/' <unixfile.sh> keep.sh

posted on 2017-09-12 10:56  一只小小小小菜鸟  阅读(1092)  评论(0)    收藏  举报

导航