Я пытаюсь использовать jq для вывода одного логического значения, если элемент существует в массиве:
jq -e '.differences[] | .afterBlob.path | contains ("sandbox_app") or contains ("sandbox_cicd")'
Вход:
{
"differences": [
{
"beforeBlob": {
"blobId": "a9033f024bf",
"path": "test1",
"mode": "100644"
},
"afterBlob": {
"blobId": "e27f2609943e",
"path": "test1",
"mode": "100644"
},
"changeType": "M"
},
{
"beforeBlob": {
"blobId": "ec669676314",
"path": "test2",
"mode": "100644"
},
"afterBlob": {
"blobId": "38867b90873",
"path": "test2",
"mode": "100644"
},
"changeType": "M"
},
{
"afterBlob": {
"blobId": "ae8c5bdb690",
"path": "sandbox_app/test3",
"mode": "100644"
},
"changeType": "A"
},
{
"afterBlob": {
"blobId": "97819f382ad9",
"path": "sandbox_cicd/test3",
"mode": "100644"
},
"changeType": "A"
}
]
}
Токовый выход:
false
false
true
true
Как сделать так, чтобы вывод был просто логическим значением.
Я попытался использовать функцию 'any':
jq -e '.differences[] | .afterBlob.path | contains ("sandbox_app") or contains ("sandbox_cicd") | any'
, но получить следующее:
jq: error (at <stdin>:46): Cannot iterate over boolean (false)
Я также попытался обернуть функцию 'any' вокруг моего выражения. Есть ли способ для jq просто вывести один логический, если значение существует