сценарий оболочки: используйте конвейеры вместо файлов для пакетной обработки - PullRequest
0 голосов
/ 26 марта 2020

Я использую эти две команды для обработки огромной последовательности json объектов:

$ jq -c '.[]' csvjson.json | split -l 25 - splitted

Над командой создается несколько splitted-* файлов, содержащих по 25 строк в каждом.

$ jq --slurp 'map({PutRequest: {Item: map_values({S: .})}})' splitted-n > output-n.json

Есть ли способ конвейерной передачи выше двух команд?

1 Ответ

0 голосов
/ 26 марта 2020

Есть ли какой-нибудь способ передать выше двух команд?

Мы можем использовать опцию split --filter:

jq -c '.[]' csvjson.json |
split -l25 --filter='jq --slurp "map({PutRequest: {Item: map_values({S: .})}})" >$FILE.json' - output
...