(SED 初学者)替换 env 变量中的字符



使用 sed 时如何"即时"替换 caracters?例:

我希望执行此命令: /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"包含在 env 变量中,我想在替换/etc/sysconfig/network 中的相应行之前用下划线替换点。

谢谢!

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

您也可以使用 bash 替换来执行此操作:

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

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

最新更新