Как извлечь первое поле/значение в файле json с помощью jq

Вообще говоря, вам следует запускать инструменты создания разделов на всех дисковых устройствах, а не на отдельных разделах; в вашем случае:

gdisk /dev/sda

Я не уверен, почему gdiskсообщает «MBR присутствует» для разделов Windows (Я предполагаю, что это какая-то совпадающая подпись ).

Схемы разбиения предназначены для управления целыми томами.

(В некоторых случаях внутри разделов существуют разделы, например. с логическими разделами внутри расширенных разделов или метками дисков BSD внутри раздела MBR. На самом деле это случайности реализации, и они не совсем уместны для обсуждения здесь; в частности, логические разделы управляются полными -инструментами для работы с разделами диска. Кроме того, можно иметь разделы где угодно, используя устройство цикла Linux, но не стесняйтесь игнорировать это здесь.)

0
11.03.2021, 15:08
1 ответ

Предполагается, что вам нужен первый объект JSON с ключом greeting, соответствующим значению hello, а не только первый объект JSON.

jq -s '[.[] | select(.Message.greeting == "hello")][0]' file.json

Это считывает объекты JSON в file.jsonв массив с-s(--surp). Затем этот массив фильтруется для любого объекта, содержащего ключ .Message.greetingсо значением hello. Все такие объекты помещаются в массив, и возвращается первый из них.

С измененным образцом документа,

{
  "Message": {
    "greeting": "Konnichiwa"
  }
}
{
  "Message": {
    "greeting": "hello",
    "id": 1
  }
}
{
  "Message": {
    "greeting": "hello",
    "id": 2
  }
}
{
  "Message": {
    "greeting": "Bonjour"
  }
}

где клавиши idбыли добавлены только для того, чтобы различать два в остальном идентичных объекта, команда jqвозвращает

{
  "Message": {
    "greeting": "hello",
    "id": 1
  }
}
0
29.04.2021, 07:57

Теги

Похожие вопросы