如何替换 awk 找到的字符串

如何替换 awk 找到的字符串

我有一个 nginx 文件,其中有这个块,

upstream jira.example.com {
## Can be connected with "nginx-proxy" network
 server 172.21.0.5:80;

基本上,我想从 nginx 文件中替换上述块的 ipaddress 和 port,该文件许多包含具有相同 ip:port 的其他上游块。

我使用下面的方法来获取精确的区块,

awk '/upstream jira.example.com *{/{c=1; print;next} c&&/{/{c++} c&&/}/{c--} c' /etc/nginx.conf 

现在我想替换 IP:port 如 192.168.0.2:8080;不确定是否可以使用 awk 和 sed 内联编辑来完成此操作。

答案1

我更喜欢sed可以在替换文件中的内容时备份原始文件的功能。

sed -i s/regexp/replacement/ /path/to/the/file

sed 手册页

相关内容