linuxsed命令:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work(unknow
- 开源代码
- 2025-08-12 18:09:01

问题:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work
linux中sed命令可以做文本替换。 比如:
echo aaaccc111 | sed 's/aaa/bbb/g' 命令可以替换aaa为bbb, 输出结果为 bbbccc111
但是当使用环境变量时,命令会不太work。 比如
# 需要将一个文件中的 $currinterface 替换为目标环境变量 $interface # 且环境变量是复杂的字符,且包括/文件分割符时,这个就不work了。 currinterface="interface = internal/10.1.51.221;external/10.1" interface="interface = internal/10.1.51.221;external/10.1.51.221!101.43.111.111" # 当执行sed命令时 echo abcdefg123456 | sed "s/1/$(echo $interface)/g" sed: -e expression #1, char 28: unknown option to `s' # 会报错 unknown option to s 解决方案:需要使用 | 替换为 / ; 另外使用双引号 "" ; 最后是使用新的方式获取环境变量 $(echo $interface)
echo "interface = internal/10.1.51.221;external/10.1aaaaa" | sed "s|$(echo $currinterface)|$(echo $interface)|g" # 输出为 interface = internal/10.1.51.221;external/10.1.51.221!101.43.111.111aaaaalinuxsed命令:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work(unknow由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“linuxsed命令:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work(unknow”
上一篇
Vertx-EventBus篇