sed:-e 表达式 #1,字符 10:“s”的未知选项
背景通过sed 执行替换命令时报错信息为sed:-e 表达式 #1,字符 10:“s”的未知选项场景[zoms@chm aa]$ echo $DOCKER_IMAGE_TAG10.45.80.1/zcm9/xx:xxxx[zoms@chm aa]$ echo DOCKER_IMAGE_TAG| sed "s/DOCKER_IMAGE_TAG/$DOCKER_IMAGE_TAG/"sed:-e 表达
·
背景
通过sed 执行替换命令时报错信息为
sed:-e 表达式 #1,字符 10:“s”的未知选项
场景
[zoms@chm aa]$ echo $DOCKER_IMAGE_TAG
10.45.80.1/zcm9/xx:xxxx
[zoms@chm aa]$ echo DOCKER_IMAGE_TAG| sed "s/DOCKER_IMAGE_TAG/$DOCKER_IMAGE_TAG/"
sed:-e 表达式 #1,字符 31:“s”的未知选项
分析
sed 替换可以通过 / # _ @ * 进行分割
环境变量中是含有反斜线的,这个在替换的时候会出现异常
可以使用# 或者 * @ 来替换
解决方案
[zoms@chm aa]$ echo $DOCKER_IMAGE_TAG
10.45.80.1/zcm9/xx:xxxx
[zoms@chm aa]$ echo DOCKER_IMAGE_TAG| sed "s*DOCKER_IMAGE_TAG*$DOCKER_IMAGE_TAG*"
10.45.80.1/zcm9/xx:xxxx
[zoms@chm aa]$ echo DOCKER_IMAGE_TAG| sed "s@DOCKER_IMAGE_TAG@$DOCKER_IMAGE_TAG@"
10.45.80.1/zcm9/xx:xxxx
注意:避免变量中的特殊字符和分割符相同
更多推荐
已为社区贡献3条内容
所有评论(0)