工作中遇到了这么一个需求:有一段没有格式的 JSON 字符串,需要把其中的 key 为 name 的值改成 new-webhook-config,用 sed 可以完成这个工作。
原始内容
1 | {"apiVersion":"admissionregistration.k8s.io/v1beta1","kind":"MutatingWebhookConfiguration","metadata":{"annotations":{},"name":"webhook-config"}} |
sed 命令
1 | sed -ri 's/(\"name\":\")[^"]*/\1new-webhook-config/g' 1.txt |
重点是其中的 \1,这里表示第一个子串(捕获组),如果没有这个 \1,那么就会全部替换掉。