.
внутри select
не ссылается на строку из вашего входного массива, но $arg
из-за внутренней части |
Это ваш рабочий пример
$ echo '[{"c":"a"},{"c":"d"},{"c":"g"},{"c":"j"}]' | \
jq '.[] | .c as $c | select( ["a","g"] | index($c) ) '
{
"c": "a"
}
{
"c": "g"
}
Теперь мы replace
выбираем map
$ echo '[{"c":"a"},{"c":"d"},{"c":"g"},{"c":"j"}]' | \
jq '.[] | .c as $c | map( ["a","g"] | index($c) ) '
[
0
]
[
null
]
[
1
]
[
null
]
Теперь вместо index($c)
мы заменяем .
$ echo '[{"c":"a"},{"c":"d"},{"c":"g"},{"c":"j"}]' | \
jq '.[] | .c as $c | map( ["a","g"] | . ) '
[
[
"abc",
"ghi"
]
]
[
[
"abc",
"ghi"
]
]
[
[
"abc",
"ghi"
]
]
[
[
"abc",
"ghi"
]
]