Значения из массива foo не в строке массива

Я пытаюсь отфильтровать массив другим. Например, если у меня есть этот входной массив: ['foo', bar', 'baz'] И этот массив фильтров: ['foo', 'baz']

Я хочу получить этот вывод: ['bar']

Я чувствую, что мог бы сделать это, подключившись к select(inside()), но я не могу заставить inside() работать; Я получаю ошибку "не определено".


jq
person nVitius    schedule 01.09.2015    source источник


Ответы (1)


Вы можете использовать удобный оператор вычитания - следующим образом:

jq '. - ["foo", "baz"]'
person Hans Z.    schedule 01.09.2015
comment
Что, если бы я хотел вместо этого сделать для значений в объекте? то есть [{"key": "foo"},{"key": "bar"},{"key": "baz"}] Меня действительно интересуют только сами значения, поэтому я попытался сделать: .[].key - ["foo", "baz"], но это не работает. - person nVitius; 02.09.2015
comment
@nVitius: Это совсем другой вопрос. Вы заявили, что входной массив состоит из строк, а не объектов. В любом случае, этот вопрос (и его варианты) уже ответил. - person Jeff Mercado; 02.09.2015
comment
Да, так и есть. Спасибо за ссылки на другие вопросы. - person nVitius; 02.09.2015