将 json 文件中字符串后的数值乘以 3?

将 json 文件中字符串后的数值乘以 3?

我正在尝试替换一组文本文件中的数字。每个文件的数字都会有所不同,但它总是出现在特定字符串之后。

这是原始文件:

    "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 文件有多大?

听起来你想要在字符串后面添加任何整数值?还是只是那些名为“间距”的整数值?

它是字符串后面的任意值还是每个对象的第一个值?字段有不同的名称吗?

这将修改答案。请告诉我,我会谈及这一点。

相关内容