JQ отфильтровал данные с включенным родительским ключом

Размер блока по умолчанию составляет всего 512 байт, что значительно снижает скорость передачи. Вы должны использовать размер блока, который намного больше.

В OSX Daily есть пошаговые инструкции , они предлагают 1 МБ, но вы можете попробовать еще больше.

sudo dd if=/path/image.iso of=/dev/r(IDENTIFIER) bs=1m 

1
02.10.2019, 08:01
1 ответ

Учитывая документ JSON, который вы показываете:

$ jq -r 'path(.[][][]) as $p | "\($p|join(":")):\(getpath($p).MeltingPoint):\(getpath($p).BoilingPoint)"' file.json
Metals:AlkaliMetals:Lithium:453:1615
Metals:AlkaliMetals:Sodium:371:1156
Metals:AlkalineEarthMetals:Beryllium:1560:2743
Metals:AlkalineEarthMetals:Magnesium:923:1363
Metalloids:Metaloids:Boron:2348:4273
Metalloids:Metaloids:Silicon:1687:3173

Это перебирает «пути» всех объектов на уровне 3 документа (, то есть пути к структурам Lithium, Sodiumи т. д. )как $p. Каждый $pпредставляет собой массив, подобный ["Metals","AlkaliMetals","Sodium"]. Он использует текущий путь для создания начальной части каждой выходной строки, соединяя путь с :в качестве разделителей. Фактические температуры кипения и плавления извлекаются с помощью getpath()из текущего пути, а значения добавляются в конец строки.

Похоже, это также работает с большим файлом, на который вы ссылаетесь, но выводит nullдля отсутствующих данных о температуре.

3
27.01.2020, 23:22

Теги

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