是否可以对记录应用递归转换以返回相同的记录,但映射所有 string
值?
例如:
{"x":"1", "a": {"b": 2, "c": ["a"]}, "d": {"e": "z"}}
应用了“add prime”的映射:
{"x":"1'", "a": {"b": 2, "c": ["a'"]}, "d": {"e": "z'"}}
我尝试过组合使用 recurse
、map
、string
和 select
,但运气不佳。有什么想法吗?
最佳答案
您也可以使用递归运算符轻松地做到这一点:
jq '(.. | strings) += "\'"'
其中 ..
通过递归遍历输入的每个元素生成流,strings
为那些是字符串的流过滤,+=
将右侧元素添加到左侧流中的每个元素,"\'"
是包含您寻找的“质数”的文字。
关于json - 如何使用 jq 递归地将函数应用于记录结构中的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35609548/