我有以下问题。
当我运行一个以CR+LF行尾存储的shell脚本时,我得到以下错误。
myscript.sh: line 1: cd: $'somedir\\someotherdir\r': No such file or directory
我研究了这个问题,有一个解决Cygwin shell的方法,找到了 此处:
把这个放在里面。
export SHELLOPTS
set -o igncr
然而,我使用的是 Cmder 我想把这个应用在里面。但是,我不知道怎么做。如上所述 此处在安装过程中,Cygwin曾经有一个选项可以将使用DOS文件结尾设置为默认值,但后来取消了这个选项(不知道为什么)。
最奇怪的是,我在我的旧电脑上也有同样的设置,也是Windows 10,一切都很好,即使是CRLF结尾......
我在升级的时候也遇到了同样的问题。很 对于极少数有限的 "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