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

被折叠的 条评论
为什么被折叠?



