Вам нужно сначала преобразовать свой файл (в котором, видимо на верхнем уровне список) в перечень вложенных в этот список json'ов:
jq -c ".[]"
Потом разбить на группы по N штук:
split -l 10 -d - my_chunk_prefix_
Получим файлы my_chunk_prefix_*, но в каждом из них не валидный json, a json-строки. Их нужно преобразовать к обычным josn'ам.
for f in my_chunk_prefix_*; do cat $f | sed '1s/^/[/; $!s/$/,/; $s/$/]/' | jq "" > $f.json ; rm $f ; done
Всё. На этом у вас есть пагинированный json-файл в виде статики.
Итак, ещё раз:
jq -c ".[]" my_big.json | split -l 10 -d - my_chunk_prefix_
for f in my_chunk_prefix_*; do cat $f | sed '1s/^/[/; $!s/$/,/; $s/$/]/' | jq "" > $f.json ; rm $f ; done
Так себе решение по читабельности, уверен, что сборку json из строк можно было сделать без sed на чистом jq, но читать мануал некогда.
Если разбиение надо делать динамически, то большой json я бы хранил в виде одного большого jsons (json lines), потом сделал бы шелл-скрипт с параметрами пагинации и в нём выбирал бы нужные N строк по модулю количества элементов на страницу и конвертил бы это в json на лету.
Вообще почитайте
мануал по jq, не исключено, что там есть готовый способ сделать пагинацию за один простой шаг вместо всех этих танцев с башем.
Наглядно поупражняться с магией jq можно тут:
https://jqplay.org/.