使用sed将字符串替换为另一个在ksh中包含特殊字符的字符串

使用sed将字符串替换为另一个在ksh中包含特殊字符的字符串,sed,special-characters,ksh,Sed,Special Characters,Ksh,我试图用sed命令将@sys替换为amd64\u linux26\u rh5.64 #!/bin/ksh file_path="/xxx/xxx/xxx/@sys/xxx" os="amd64_linux26_rh5" osver="amd64_linux26_rh5.64" sys="@sys" echo "osver: $osver" echo "old file_path is : $file_path" file_path=$(echo "$file_path" | sed "s/$sy

我试图用sed命令将
@sys
替换为
amd64\u linux26\u rh5.64

#!/bin/ksh
file_path="/xxx/xxx/xxx/@sys/xxx"
os="amd64_linux26_rh5"
osver="amd64_linux26_rh5.64"
sys="@sys"
echo "osver: $osver"
echo "old file_path is : $file_path"
file_path=$(echo "$file_path" | sed "s/$sys/${osver}/")
echo "new file_path is : $file_path"
但要获得输出:

osver: amd64_linux26_rh5.64
old file_path is : /xxx/xxx/xxx/amd64_linux26_rh5/xxx
new file_path is : /xxx/xxx/xxx/amd64_linux26_rh5/xxx
我还尝试了
file_path=$(echo“$file_path”| sed“s/$sys/${os}\.64/”
,但没有得到相同的输出


提前谢谢

该输出仍然不是脚本生成的结果–当前版本适用于me.dup of?