Пожалуйста, попробуйте следующее:
echo '
{
"total": 2,
"inputs": [
{
"id": "5c3d8ee0c9e77c0009f0070e",
"node": null,
"static_fields": {},
"title": "Gelf TCP",
"global": true,
"name": "GELF TCP",
"content_pack": null,
"created_at": "2019-01-16T10:37:19.467Z",
"type": "org.graylog2.inputs.gelf.tcp.GELFTCPInput",
"creator_user_id": "admin",
"attributes": {
"decompress_size_limit": "8388608",
"bind_address": "0.0.0.0",
"tls_client_auth": "disabled",
"max_message_size": "2097152",
"tls_enable": "false",
"port": 12201,
"recv_buffer_size": "1048576"
}
},
{
"id": "**5c3da992c9e77c0009f02400**",
"Node": null,
"static_fields": {},
"title": "vault_beats",
"global": true,
"name": "Beats",
"content_pack": null,
"created_at": "2019-01-15T09:36:18.467Z",
"type": "org.graylog.plugins.beats.Beats2Input",
"creator_user_id": "admin",
"attributes": {
"override_source": null,
"tls_client_auth": "disabled",
"tls_key_password": "admin",
"tls_enable": false,
"tls_key_file": "admin",
"recv_buffer_size": 1048576,
"tcp_keepalive": false,
"number_worker_threads": 1,
"tls_client_auth_cert_file": "",
"beats_prefix": false,
"bind_address": "0.0.0.0",
"tls_cert_file": "",
"port": 5044
}
}
]
}' | jq -r '.inputs[] | select(.title == "Gelf TCP") | .id'
Выходы:
5c3d8ee0c9e77c0009f0070e
Обратите внимание, что опубликованный файл json
содержит некоторые синтаксические ошибки. Они были исправлены в приведенном выше сценарии и отформатированы для удобства чтения.