我有一些json输入数据我想将变量值提取到我可以粘贴到我的脚本中的东西
输入样本:
{
"menu": {
"props": [{
"name": "foo1",
"model": "bar1"
}, {
"name": "foo2",
"model": "bar2"
}, {
"name": "foo3",
"model": "bar3"
}, {
"name": "foo4",
"model": "bar4"
}, {
"name": "foo5",
"model": "bar5"
}]
}
}
所需的输出:
AddMenuItem(menu, "bar1", "foo1");
AddMenuItem(menu, "bar2", "foo2");
AddMenuItem(menu, "bar3", "foo3");
...etc
答案 0 :(得分:1)
这样的事情会起作用:
$ jq -r '.menu.props[] | "AddMenuItem(menu, \"\(.model)\", \"\(.name)\")"' file.txt
AddMenuItem(menu, "bar1", "foo1")
AddMenuItem(menu, "bar2", "foo2")
AddMenuItem(menu, "bar3", "foo3")
AddMenuItem(menu, "bar4", "foo4")
AddMenuItem(menu, "bar5", "foo5")
-r
打印原始输出(非JSON编码)。
用props
打开[]
数组,并为所述数组中的每个元素打印字符串"AddMenu..."
。
也可以使用...props | map("AddMenu...")[]
,这可能更直观。
\(...)
启用(
和)
之间的字符串插值。