Reputation: 53
I have many objects like
{
"name":"blablabla1",
"something": "blablabla"
"something2": "blablabla"
}
{
"name":"blablabla2",
"something": "blablabla"
"something2": "blablabla"
}
{
"name":"blablabla3",
"something": "blablabla"
"something2": "blablabla"
}
I need to merge them with jq, like
jq -s '.' firstone.json secondone.json thirdone.json
After merge, I get:
[
{
"name":"blablabla1",
"something": "blablabla"
"something2": "blablabla"
},
{
"name":"blablabla2",
"something": "blablabla"
"something2": "blablabla"
},
{
"name":"blablabla3",
"something": "blablabla"
"something2": "blablabla"
}
]
but I want to add in every object - another one:
{
"thisMustBeInEveryarray": "thisone"
}
But like:
[
{
"name":"blablabla1",
"something": "blablabla"
"something2": "blablabla"
"thisMustBeInEveryarray": "thisone"
},
{
"name":"blablabla2",
"something": "blablabla"
"something2": "blablabla"
"thisMustBeInEveryarray": "thisone"
},
{
"name":"blablabla3",
"something": "blablabla"
"something2": "blablabla"
"thisMustBeInEveryarray": "thisone"
}
]
Is it even possible to be done in one iteration with jq? Because if I merge them like
jq -s '.' firstone.json secondone.json thirdone.json mustbeinevery.json
, I get mustbeinevery.json
just like the last element of the whole array.
Upvotes: 1
Views: 53
Reputation: 50805
Specify mustbeinevery.json
as the first input so that you can refer to others by inputs
keyword, and add them inside an array constructor.
jq '[inputs+.]' mustbeinevery.json firstone.json secondone.json thirdone.json
Upvotes: 1