我用
id=$(cat an.json | jq '.id')
从JSON获取ID。
当我echo $id
时,输出为"1a35"
。
如何剪切引号"
以获取字符串1a35
?
答案 0 :(得分:1)
告诉jq
将结果作为带-r
的原始字符串:
id=$(jq -r '.id' <an.json)
我们可以测试,在更天真的方法获胜的情况下,这种方法可以正常运行。例如,使用反斜杠提取id:
## suggested approach
$ id=$(jq -r '.id' <<<'{"id": "domain\\user"}'
$ echo "$id"
domain\user
## alternative, corrected to use '[^"]+' rather than '[^"]*'
$ id=$(jq '.id' <<<'{"id": "domain\\user"}' | grep -E '[^"]+' -o)
$ echo "$id"
domain\\user