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

问题描述 投票:1回答:1

我有以下问题。

当我运行一个以CR+LF行尾存储的shell脚本时,我得到以下错误。

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

我研究了这个问题,有一个解决Cygwin shell的方法,找到了 此处:

  1. 创建一个.bashrc文件
  2. 把这个放在里面。

    export SHELLOPTS
    set -o igncr
    
  3. 重装Cygwin外壳

然而,我使用的是 Cmder 我想把这个应用在里面。但是,我不知道怎么做。如上所述 此处在安装过程中,Cygwin曾经有一个选项可以将使用DOS文件结尾设置为默认值,但后来取消了这个选项(不知道为什么)。

最奇怪的是,我在我的旧电脑上也有同样的设置,也是Windows 10,一切都很好,即使是CRLF结尾......

windows cygwin line-endings
1个回答
0
投票

我在升级的时候也遇到了同样的问题。 对于极少数有限的 "sed "调用,我明确地在输出中添加了一个"\r",以使其他下游的非cygwin工具满意。

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

一个regex大师可能会改进这种方法,只有在数据中发现"/r "时,才会有选择地捕获并发出"/r"。

sed s_(capture1)(capture\r-or-empty:\r*)$_\1\2_g infile > outfile
© www.soinside.com 2019 - 2024. All rights reserved.