我有一个有效的echo
+ sed 命令
echo %cd% | sed -E 's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g'
我无法让它的结果作为cd
参数(Windows,cmder)
~~=cd $(echo %cd% | sed -E 's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g')
错误:
文件名、目录名或卷标语法不正确。sed:-e 表达式 #1,字符 49:'s' 的未知选项
我究竟做错了什么?
答案1
's#(C\:\\\some\\\path\\\)([-_A-Za-z0-9]+).*#\1\2#g'
应该
's#(C\:\\some\\path\\)([-_A-Za-z0-9]+).*#\1\2#g'
您正在使用 删除第一个“)”中的特殊含义"\)"
。
但是 '%cd%' 在 Linux 或 Bash 中没有意义。