用sed替换掉特定字符串后的指定内容

工作中遇到了这么一个需求,有一段没有格式的json字符串,需要把其中的key为“name”的值改成“new-webhook-config”, 用sed可以完成这个工作。

1
{"apiVersion":"admissionregistration.k8s.io/v1beta1","kind":"MutatingWebhookConfiguration","metadata":{"annotations":{},"name":"webhook-config"}}
1
sed -ri 's/(\"name\":\")[^"]*/\1new-webhook-config/g' 1.txt

重点的是其中的\1,这里表示的第一个子串,如果没有这个\1,那么就会全部替换掉。
可以参考这里:
https://www.cnblogs.com/maxincai/p/5146338.html

Notice: 正常情况下,这里会有一个基于utteranc.es的留言系统,如果看不到,可能需要科学上网方式。