sed中使用变量及变量中存在特殊字符‘/’处理
2024-09-20 17:00:24
sed中使用变量,普通的处理方式无法解析变量
如当前file文件中存在字符串pedis,现将其替换为redis
[root@localhost work]# cat file
pedis
如下两种替换方式,都是行不通的
#!/bin/bash old_str=pedis
new_str=redis sed -i 's/$old_str/$new_str/g' file
sed -i 's#$old_str#$new_str#g' file
将变量用三个单引号引起来,可以解决上述问题
#!/bin/bash old_str=pedis
new_str=redis #sed -i 's/$old_str/$new_str/g' file #sed -i 's#$old_str#$new_str#g' file sed -i 's/'''$old_str'''/'''$new_str'''/g' file
执行结果
[root@localhost work]# cat file
pedis
[root@localhost work]# ./replace.sh
[root@localhost work]# cat file
redis
当变量中存在特殊字符/,上面的替换方式就不合适了,需要将/改为#
#!/bin/bash old_str=redis
new_str=/data/ sed -i 's#'''$old_str'''#'''$new_str'''#g' file
执行结果
[root@localhost work]# cat file
redis
[root@localhost work]# ./replace.sh
[root@localhost work]# cat file
/data/
最新文章
- try catch 与 throw拾遗
- Android 系统稳定性 - ANR(二)(转)
- 树莓派make 360wifi2报错
- java基础知识回顾之java Thread类学习(七)--java多线程安全问题(死锁)
- 20160510--hibernate懒加载问题
- cocos2d-x编译错误问题
- Codeforces 301_div.2_Ice Cave(BFS走冰块)
- Android入门之时间日期控件
- C++拾遗(十一)类继承
- 浅谈spring——spring MVC(十一)
- 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
- Java运算符和流程控制
- htmlcss渐变及兼容性
- 【算法】深度优先 马走日 Hamilton routes
- C#窗体-猜数字
- go 函数类型
- 【Linux常用工具】
- protobuf可变长编码的实现原理
- 上云、微服务化和DevOps,少走弯路的办法
- centos7 PDI(Kettle)安装