jq - 在keyname中转义反斜杠

时间:2018-03-02 16:31:57

标签: linux jq

我有一个带有\的密钥,我似乎无法使用jq访问它。任何帮助表示赞赏。

$ cat /tmp/yo
{
  "kubectl.kubernetes.io\last-applied-configuration": "test"
}

$ cat /tmp/yo | jq .["kubectl.kubernetes.io\last-applied-configuration"]
parse error: Invalid escape at line 2, column 52

1 个答案:

答案 0 :(得分:1)

这不是有效的JSON文档。 JSON中的反斜杠必须进行转义才能包含在文字字符串中。报告生成此无效内容的任何工具的错误。

要在JSON中包含反斜杠,请改为:

{
  "kubectl.kubernetes.io\\last-applied-configuration": "test"
}

如果你有这样一个有效的文件,你可以使用:

jq '.["kubectl.kubernetes.io\\last-applied-configuration"]' </tmp/yo