2
創造文字引號我用提取從JSON字符串,不圍繞價值
id=$(cat an.json | jq '.id')
擺脫JSON的ID。
當我I echo $id
時,輸出是"1a35"
。
我怎樣才能削減報價"
只是得到字符串1a35
?
創造文字引號我用提取從JSON字符串,不圍繞價值
id=$(cat an.json | jq '.id')
擺脫JSON的ID。
當我I echo $id
時,輸出是"1a35"
。
我怎樣才能削減報價"
只是得到字符串1a35
?
告訴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
順便提一下,'cat foo | bar'一般應該用'bar