使用Cygwin时,我经常复制Windows路径并手动编辑所有斜杠到Unix格式。例如,如果我正在使用Cygwin并且需要更改目录,请输入:
cd C:\windows\path
然后将其编辑为
cd C:/windows/path
(通常,路径比这长得多)。有没有办法使用sed或其他东西自动执行此操作?例如,我试过:
echo C:\windows\path|sed 's|\\|g'
但出现以下错误
sed: -e expression #1, char 7: unterminated `s' command
我的目标是减少输入,所以也许我可以编写一个我可以调用的程序。理想情况下我会输入:
conversionScript cd C:/windows/path
这相当于输入:
cd C:\windows\path
答案 0 :(得分:27)
谢谢大家。显然我只需要在路径上单引号:
cd'C:\ windows \ path'
和Cygwin将转换它。 Cygpath也可以工作,但它也需要单引号来防止shell使用反斜杠字符。
答案 1 :(得分:12)
阅读cygpath命令。
somecommand `cygpath -u WIN_PATH`
e.g。
答案 2 :(得分:1)
cmd.exe
不喜欢单引号。你应该使用双引号
C:\test>echo C:\windows\path|sed "s|\\|/|g"
C:/windows/path
答案 3 :(得分:1)
使用unix sed
用斜杠替换反斜杠下面我使用star" *"在s指令中分隔字段
sed "s*\\\*/*g"
诀窍是使用一个比你想象的更多的反斜杠
答案 4 :(得分:0)
回答您要实现的问题
cd C:\ windows \ path
由于您正在使用bash,因此可以根据需要进行操作-但添加单引号
cd 'C:\windows\path'
如@bmargulies和@Jennette所述-cygpath是您的朋友-阅读cygwin手册页是值得的
man cygpath