Shell-shell 批量替换多行内容

Shell-shell 批量替换多行内容

甜柠檬 发布于 2017-08-01 字数 644 浏览 1279 回复 2

批量修改一系统配置文件,部分内容是:

<VirtualHost *:80>
ServerAdmin club@domain.com
DocumentRoot E:/www/sns/club
ServerName club.domain.com
#ErrorLog logs/dummy-host2.localhost-error_log
#CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>
<VirtualHost *:8080>
ServerAdmin user@domain.com
DocumentRoot E:/www/sns/user
ServerName user.domain.com
#ErrorLog logs/dummy-host2.localhost-error_log
#CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>
......

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2017-09-22 2 楼

 awk '$0~/<VirtualHost.*>/{flag=1;print $0;}$0!~/<VirtualHost.*>/{if(flag==1){print "替换内容";flag=0}}$0~/</VirtualHost.*>/{print $0;}' 1.txt

想挽留 2017-09-09 1 楼

写了一个sed脚本如下

 /<VirtualHost/, /</VirtualHost/ {
/<VirtualHost/p
/<VirtualHost/r newconf
/</VirtualHost/ p
d
}

使用方法:
将新内容写在一个文件,例如叫newconf,将sed脚本保存为replace.sed
然后执行

 sed -f replace.sed <要替换的文件>