当前位置: 首页 > news >正文

linux sed命令:sed替换命令使用环境变量,且环境变量中有文件分隔符时,sed命令不work (unknown option to s)

问题: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.111aaaaa

相关文章:

  • 类和对象(7):初始化列表
  • Java方法中不使用的对象应该手动赋值为NULL吗?
  • 【完整详细】IntelliJ IDEA中使用Docker插件一键部署前后端分离项目
  • 使用docker部署ELK日志框架-Elasticsearch
  • macos 配置ndk环境
  • <MySQL> 什么是数据库索引?数据库索引的底层结构是什么?
  • golang学习笔记——查找质数
  • iApp祁天社区UI成品源码 功能齐全的社区应用
  • RabbitMQ-基础篇-黑马程序员
  • 如何设计开发一对一交友App吸引更多活跃用户
  • [代码实战和详解]VGG16
  • 【你哥电力电子】从耦合电感到变压器
  • Gitlab CI如何实现安全获取ssh-key拉取依赖项目,打包成品
  • 这款开源神器,让聚类算法从此变得简单易用
  • 【MATLAB源码-第80期】基于蚯蚓优化算法(EOA)的无人机三维路径规划,输出做短路径图和适应度曲线
  • C# 集合用法介绍
  • Apache SCXML2 RCE漏洞
  • mysql常用命令
  • Mallab勒索病毒的最新威胁:如何恢复您的数据?
  • 腾讯云优惠服务器有哪些?腾讯云服务器优惠券领取入口汇总
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者
  • 微软将裁员3%,减少管理层
  • 外企聊营商|特雷通集团:税务服务“及时雨”
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 特朗普访中东绕行以色列,专家:凸显美以利益分歧扩大
  • 影子调查丨三名“淘金客”殒命雪峰山:千余废弃金矿洞的监管难题