无法获取 sed 管道的结果作为 cd 的参数

无法获取 sed 管道的结果作为 cd 的参数

我有一个有效的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 中没有意义。

相关内容