这是我的输入:
{
"alias-name": "soufriere",
"member-entry": {
"alias-entry-name": [
"21:00:f4:e9:d4:50:56:7e",
"21:00:f4:e9:d4:50:56:7f"
]
}
}
{
"alias-name": "stromboli",
"member-entry": {
"alias-entry-name": [
"21:00:f4:e9:d4:50:56:8e"
"21:00:f4:e9:d4:50:56:9e"
]
}
}
我想把它变成输出
alicreate "soufriere",""21:00:f4:e9:d4:50:56:7e;21:00:f4:e9:d4:50:56:7f"
alicreate "stromboli","21:00:f4:e9:d4:50:56:8e;21:00:f4:e9:d4:50:56:9e"
我试过这个:
jq -r --arg quote "\"" ("alicreate " + $quote + ."alias-name" + $quote + "," + $quote + ."member-entry"."alias-entry-name"[] + $quote)'
但它给出的是一行一行而不是顺序的。
alicreate "soufriere","21:00:f4:e9:d4:50:56:7e"
alicreate "soufriere","21:00:f4:e9:d4:50:56:7f"
alicreate "stromboli","21:00:f4:e9:d4:50:56:8e"
alicreate "stromboli","21:00:f4:e9:d4:50:56:9e"
您可以使用
\"
生成引号,并使用字符串插值将值注入字符串:
jq -R '"alicreate \"\(."alias-name")\",\"\(."member-entry"."alias-entry-name".[])\""'
alicreate "soufriere","21:00:f4:e9:d4:50:56:7e"
alicreate "soufriere","21:00:f4:e9:d4:50:56:7f"
alicreate "stromboli","21:00:f4:e9:d4:50:56:8e"
alicreate "stromboli","21:00:f4:e9:d4:50:56:9e"