JQ: Как указать имя функции и включить файл в качестве входных аргументов? - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу создать общий сценарий SH, который будет вызываться с указанной функцией для использования в середине запроса JQ.

1.Как я могу вызвать функцию по имени, указанному в качестве аргумента командной строки?

Простой способ сделать это - создать строку с именем функции вместо вызова такой функции:

jq --arg query_function "foo_function" '
  include "foo_function";
  . |
  ($query_function)' \
input.txt

2.Можно ли также указать файл для включения в JQ с аргументом командной строки?

Я также пытался сделать это простым способом, но это не сработало.

1 Ответ

0 голосов
/ 26 сентября 2018

Ни имена функций jq, ни имена модулей не могут быть указаны как переменные jq, и поэтому для достижения того, что вы, похоже, хотите, вам придется прибегнуть к интерполяции строк оболочки или выражениям поиска.

ЭтоОднако стоит отметить, что jq поддерживает выражения пути на основе массива, и поэтому определенные виды поиска могут поддерживаться с помощью переменных jq.

...