Я мало играю с jq или json, поэтому мне пришлось смоделировать среду, но общая идея должна решить вашу проблему.
Здесь я генерирую три строки заголовка и некоторый (поддельный) вывод JSON:
#!/bin/sh
echo line 1
echo line 2
echo line 3
echo real json output 1
echo real json output 2
echo real json output 3
и вот сценарий, который будет читать три строки заголовка, а затем передавать остальную часть ввода в реальный jq
(или, чтобы имитировать jq, я передаю ее через sed):
#!/usr/bin/env bash
for((HEADLINES=3; HEADLINES > 0; HEADLINES--))
do
IFS= read -r header
printf "%s\n" "$header"
done
sed 's/^/parsing: /'
Основная идея здесь состоит в том, чтобы прочитать
желаемое количество строк заголовка, распечатать их обратно без изменений, а затем передать остальные ввода в jq (здесь sed). Замените команду sed желаемой командой jq
.
Пример выполнения:
$ ./json.sh | ./jq.sh
line 1
line 2
line 3
parsing: real json output 1
parsing: real json output 2
parsing: real json output 3