Você está tornando muito mais complicado do que é. Basta usar map()
e |=
:
jq 'map(.tags |= split(" "))' file.json
Editar:
Se você deseja manipular entradas sem tags
:
jq 'map(try(.tags |= split(" ")))' file.json
Como alternativa, se você quiser manter inalteradas todas as entradas sem tags
:
jq 'map(try(.tags |= split(" ")) // .)' file.json
Resultado:
[
{
"tags": [
"tagA",
"tag-B",
"tagC"
],
"title": "Some Title"
},
{
"tags": [
"tagA",
"tagC"
],
"title": "Some Title 2"
}
]