sed命令使用遇到的一些问题

本文解析了在使用sed命令进行文件编辑时遇到的两个常见问题。一是替换含有特殊字符的字符串时出现的错误,解决方案是修改命令以避免敏感字符冲突。二是尝试插入带有变量的行时遇到的问题,通过正确使用单引号来解决。本文提供了具体的sed命令修正示例。

问题1:

执行: sed -i "s/77/$JAVA_HOME:8781/" zookeeper.properties  报错!
分析:替换时变量不能有敏感字符下划线:_,变量也不能为:/7/8/9这种路径格式,因为有敏感字符:/
解决方案:改用替换整行的命令:sed -i "/77/c $JAVA_HOME:8781/abc" zookeeper.properties

问题2:

执行: sed -i "$a export K_H=$myid" zookeeper.properties		报错!
分析: 不支持这种常规的插入变量方式,sed -i $a最好是永远使用单引号''
解决方案:使用两层单引号,内层引住变量即可:sed -i '$a expor K_H='$myid'' zookeeper.properties
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值