使用 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
标志,而不仅仅是打印它。