Технически вы можете добиться этого. Хотя у ядра нет встроенного пользовательского интерфейса.
Вам нужно выполнить следующие шаги:
1. Create a initramfs with static busybox and nothing else.
This initramfs will have few necessary directories: like proc, sys, tmp, bin, usr, etc
2. Write a "/init" script, whose main job will be:
a. mount the procfs,tmpfs and sysfs.
b. Call busybox's udev i.e. mdev
c. Install the busybox command onto virtual system by executing busybox install -s
d. Calling /bin/sh
3. Source the initramfs directory while compiling the kernel. You can do so by flag: CONFIG_INITRAMFS_SOURCE
4. Compile your kernel.
5. Boot off this kernel and you will get the shell prompt with minimal things.
Хотя, я пишу вышеприведенные заметки очень формально. Вы можете доработать их так, как вам хочется.
UPDATE:
Перейдите по этой ссылке для получения некоторых рекомендаций.
если вы готовы рассмотреть альтернативы, то вот одна из них, основанная на утилите walk -path unixjtc
:
bash $ <file.json jtc -w'[type]:<text>:[-1]' -l
"fullDescription": {
"type": "text"
}
"shortDescription": {
"type": "text"
}
bash $
Прогулка -путь(-w
)здесь довольно простой:
[type]:<text>:
-рекурсивно найдет каждый (все )из "type": "text"
, затем из найденных записей [-1]
-создаст резервную копию на 1 уровень (вверх по дереву Json ), фактически выбрав его родителя -l
дает указание напечатать метку для пройденной записи
PS> Раскрытие информации :Я создатель инструмента jtc
Проблема с
.xxx.mappings[].properties | select(.[].type=="text")
заключается в том, что select
будет выбирать весь properties
объект (, а не массив )столько раз, сколько в нем есть подчиненных -объектов, которые имеют .type == "text"
.
Вы можете использовать with_entries
здесь:
jq '.xxx.mappings[].properties | with_entries(select(.value.type == "text"))' file
Это повторяется с with_entries
по свойствам. select
получает такой массив элементов:
{
"key": "clientName",
"value": {
"type": "keyword"
}
}
select
выбирает элементы с помощью .value.type == "text"
, а затем превращает их обратно в обычные объекты.
Вывод будет
{
"fullDescription": {
"type": "text"
},
"shortDescription": {
"type": "text"
}
}
Обратите внимание, что документы JSON не могут содержать «голые» ключи (ключи, не являющиеся частью объекта ), поэтому точный формат вывода, который вы запрашиваете, не является допустимым JSON.