我正在尝试替换一组文本文件中的数字。每个文件的数字都会有所不同,但它总是出现在特定字符串之后。
这是原始文件:
"structures": [
{
"structure": "wabi_sabi_structures:abandoned_small_castle",
"weight": 1
}
],
"placement": {
"type": "random_spread",
"spacing": 90,
"separation": 60,
"salt": 85683942
}
}
我想将“spacing”:”后的值乘以 3。因此在这种情况下,最后一行将显示为"spacing": 270,
。
我尝试使用 awk,但由于各种冒号和引号,我不断收到错误。我该如何传递"spacing":
?
谢谢。
答案1
正如 Jaromanda X 所评论的那样,杰奇是操作 JSON 数据的首选工具:
jq '.placement.spacing *= 3' file.json
答案2
您始终可以将节点与 JSON.parse() 和反射一起使用。我很确定字段不会在内存中排序,它们会按照加载的顺序加载。
然后穿过树。
但我确实有几个问题。
json 文件有多大?
听起来你想要在字符串后面添加任何整数值?还是只是那些名为“间距”的整数值?
它是字符串后面的任意值还是每个对象的第一个值?字段有不同的名称吗?
这将修改答案。请告诉我,我会谈及这一点。