grep命令从json中查找key的值

时间:2014-12-27 18:11:58

标签: linux

请解释如何使用grep命令从以下json中提取一些指定的文本 -

{"result":"Customer information saved successfully with Customer id :59 and version :1","status":{"responseCode":200,"result":null,"responseMessage":"Success","responseType":"info"}}

经过一些谷歌搜索,看起来可以通过使用带正则表达式的grep。但它没有用。你能否指出错误

cat response.txt | grep -Po '(?<="Customer id ":)[0-9]+'

假设:response.txt包含上面的json。

如果是,请解释。

2 个答案:

答案 0 :(得分:5)

你错过了K

cat response.txt | grep -Po 'Customer id :\K[0-9]+'
59
截图,它的工作原理: enter image description here

答案 1 :(得分:0)

尝试这样做:

$ jq -r '.result' json_file | grep -oP '(?<=Customer id :)\d+'
59

检查http://stedolan.github.io/jq/manual/