【问题标题】:(sed beginner) replace characters in an env variable(sed 初学者)替换 env 变量中的字符
【发布时间】:2012-07-03 02:23:39
【问题描述】:

如何在使用 sed 时“即时”替换字符? 示例:

我希望执行此命令: /bin/sed 's/HOSTNAME=.*/HOSTNAME=server_domain_com/g' /etc/sysconfig/network

而不是这个: /bin/sed 's/HOSTNAME=.*/HOSTNAME=server.domain.com/g' /etc/sysconfig/network

字符串“server.domain.com”包含在环境变量中,我想在替换 /etc/sysconfig/network 中的相应行之前用下划线替换点。

谢谢!

【问题讨论】:

    标签: linux shell sed


    【解决方案1】:

    您也可以使用 bash 替换来做到这一点:

    /bin/sed -i "s/HOSTNAME=.*/HOSTNAME=${HOSTNAME//./_}/g" /etc/sysconfig/network
    

    // 指示它更改所有出现(如 sed 中的 g)。不要忘记 -i 标志来实际更改文件,而不仅仅是打印它。

    【讨论】:

      【解决方案2】:
      HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        • 2013-12-30
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        • 2021-07-04
        相关资源
        最近更新 更多