当文本值具有引号文字时,jq使用contains方法

时间:2019-11-16 19:48:03

标签: jq

当值包含引号文字时,我正在尝试使用jq过滤结果,因此我的数据看起来像:

{"key": "site=\"abc\""}

我要使用包含(或其他方法)针对site = abc而不是site = abc123

进行过滤

获取abc和abc123的当前代码:

jq -c '.textPayload | select(contains("abc"))' test.json

我试图尝试使用\进行转义,但似乎在contains方法中不起作用?

1 个答案:

答案 0 :(得分:0)

考虑:

$ echo '{"key": "site=\"abc\""}' | jq 'select(.key | contains("\"abc\""))'
{
  "key": "site=\"abc\""
}

$ echo '{"key": "site=\"abc\""}' | jq 'select(.key | index("\"abc\""))'
{
  "key": "site=\"abc\""
}

$ echo '{"key": "site=\"abc\""}' | jq 'select(.key | test("\"abc\""))'
{
  "key": "site=\"abc\""
}

因此,目前尚不清楚困难是什么。