Sed значение из файла JSON - PullRequest
0 голосов
/ 15 января 2019
{"inputs":[{**"title":"Gelf TCP"**,"global":true,"name":"GELF TCP","content_pack":null,"created_at":"e":"org.graylog2.inputs.gelf.tcp.GELFTCPInput","creator_user_id":"admin","attributes":{"recv_buffer_size":"1048576","port":12201,"tls_enable":"false","max_message_size":"2097152","tls_client_auth":"disabled","bind_address":"0.0.0.0","decompress_size_limit":"8388608"},"static_fields":{},"node":null,"**id":"5c3d8ee0c9e77c0009f0070e"**},{"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":{"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,"tls_key_file":"admin","tls_enable":false,"tls_key_password":"admin","tls_client_auth":"disabled","override_source":null},"static_fields":{},"node":null,"id":"**5c3da992c9e77c0009f02400**"}],"total":2}

В этом файле JSON есть два значения идентификатора. Как я могу использовать sed / awk ID заголовка: gelf tcp

пример вывода: - 5c3d8ee0c9e77c0009f0070e

1 Ответ

0 голосов
/ 16 января 2019

Пожалуйста, попробуйте следующее:

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 содержит некоторые синтаксические ошибки. Они были исправлены в приведенном выше сценарии и отформатированы для удобства чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...