如何设置Cygwin使用DOS文件结尾?

时间:2017-02-06 16:08:26

标签: windows cygwin line-endings

我有以下问题:

当我运行一个用CR + LF行结尾存储的shell脚本时,出现以下错误:

myscript.sh: line 1: cd: $'somedir\\someotherdir\r': No such file or directory

我已经研究过这个问题并且有一个Cygwin shell的解决方案,找到here

  1. 创建.bashrc文件
  2. 把它放在里面:

    export SHELLOPTS
    set -o igncr
    
  3. 重新加载Cygwin shell
  4. 但是,我使用Cmder并且我想在其中应用此功能。但是我不知道怎么做。如前所述here,Cygwin曾经有一个选项可以在安装过程中将DOS文件结尾的使用设置为默认值,但摆脱它(不明白为什么)。

    最奇怪的是,我在旧计算机上也有相同的设置,也就是Windows 10,一切都运行良好,即使有CRLF结尾......

2 个答案:

答案 0 :(得分:0)

非常的旧Cygwin版本升级到最新版本时,我遇到了同样的问题。 对于仅几个有限的“ sed”调用,我在输出中明确添加了一个\ r,以使其他一些下游非cygwin工具满意。

sed s_(complicated-regex-with-capture)_\1\r_g infile > outfile

仅当在数据中找到“ \ r”时,regex专家才可以改进此方法,以有选择地捕获和发出“ \ r”。

sed s_(capture1)(capture\r-or-empty:\r*)$_\1\2_g infile > outfile

答案 1 :(得分:0)

您也可以使用可以与 Cygwin 一起安装的 dos2unix。