2

使用 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 中的相应行之前用下划线替换点。

谢谢!

4

2 回答 2

7
HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g)
于 2012-07-02T16:34:01.237 回答
2

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

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

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

于 2012-07-02T16:41:51.673 回答