重定向标准输出到新的文件添加性格怪异Cygwin中结束文件名
题
我在与在Cygwin的一个外壳脚本的麻烦。这是造成问题的特定命令是这样的:
sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"
的问题是,该文件被在末尾一个奇怪的字符创建的所以不是被命名config.xml.tmp,它的命名“config.xml.tmp”。从“LS”命令和从Windows命令提示,它看起来像“config.xml.tmp?”
如果我刚刚从外壳,正确命名的文件运行sed命令,脚本在Linux下正常工作。
任何想法可能是错了吗?谢谢!
解决方案
我的猜测是,你的脚本文件没有UNIX行结束。在Windows行结尾的\r
字符是什么被添加到该文件名末尾。你可以用od
或hexdump
检查,看看是否这就是问题所在。
不隶属于 StackOverflow