使用sed时如何“动态”替换caracters? 示例:
我希望执行此命令: / bin / sed的/ 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中的相应行之前用下划线替换这些点。
谢谢!
答案 0 :(得分:7)
HOSTNAME=$(echo $HOSTNAME | sed s/from/to/g)
答案 1 :(得分:2)
您也可以使用bash替换来执行此操作:
/bin/sed -i "s/HOSTNAME=.*/HOSTNAME=${HOSTNAME//./_}/g" /etc/sysconfig/network
//
指示它改变所有出现的事件(如sed中的g)。不要忘记-i
标志来实际更改文件,而不仅仅是打印它。