当字符串中有“/”时,Cygwin Sed 匹配不起作用

Cywgin Sed match not working when "/" in string

testLine="This is a test line: Asia/Pacific Australia"
expr="Asia\/Pacific Australia"

这个有效:

echo "$testLine" | sed 's/Asia\/Pacific Australia/TEST/g'

这不是:

echo "$testLine" | sed 's/$expr/TEST/g'

我尝试了所有方法,包括使用多个 "escapes"、使用不同的引号、使用 -r-re Sed 开关。似乎没有任何效果。

请告知是否有人有可行的解决方案。请有人在这里建议并提供Cygwin输出,非常感谢!

首先将您的变量更改为

expr="Asia/Pacific Australia"

这应该可以工作

echo "$testLine" | sed 's_'"$expr"'_TEST_g'

请注意,对于 sed 分隔符,您也可以选择其他字符,此处 _