【发布时间】:2018-04-24 12:55:06
【问题描述】:
我正在尝试替换此文本(无论是 xxxx):
{"type":"record","name":"xxxx","namespace":"example","fields":[{"name":"name","type":"string"}, {"name":"favorite_color","type":["string","null"]}]}
用这个:
{"type":"record","name":"yyyy","namespace":"example","fields":[{"name":"name","type":"string"},{"name":"favorite_color","type":["string","null"]}]}
我正在使用 sed,但使用以下命令:
sed 's/\"name\"\:\".*\"/\"name\"\:\"yyyy\"/' file.json
我得到:
{"type":"record", "name":"yyyy"]}]}
因为它会替换最后一个双引号之前的所有内容。
如何使用通配符仅替换文本直到下一个双引号?
【问题讨论】:
-
如果这是
json数据,最好使用jq这样的解析器...例如:jq -c '.name = "yyyy"'