Jash JQ过滤器使用Bash中的通配符

时间:2016-06-16 17:00:00

标签: json bash jq

Json输入:

[ "orange-1234", "orange-12345", "apple-1234" ]

期望的输出:

[ "orange-1234, "orange-12345" ]

通过bash,我想使用jq来查找开始或包含orange *

的值

我希望输出包含完整的值。我已经探索过使用jq startswith和contains,但只能返回true或false

2 个答案:

答案 0 :(得分:2)

从jq 1.5开始,你可以进行正则表达式匹配。所以,只需过滤你的数组。

map(select(test("\\borange\\b")))

答案 1 :(得分:2)

startswithcontains可以做到这一点。使用select按值true / false过滤值:

map(select(startswith("orange")))