在sed初学者中替换环境变量中的字符。

3
我如何在使用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中的适当行之前将点替换为下划线。 谢谢!
2个回答

7
HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g)

2
你也可以使用bash替换来实现这一点:
/bin/sed -i "s/HOSTNAME=.*/HOSTNAME=${HOSTNAME//./_}/g" /etc/sysconfig/network

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接