请解释如何使用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。
如果是,请解释。
答案 0 :(得分:5)
你错过了K
:
cat response.txt | grep -Po 'Customer id :\K[0-9]+'
59
截图,它的工作原理:
答案 1 :(得分:0)
尝试这样做:
$ jq -r '.result' json_file | grep -oP '(?<=Customer id :)\d+'
59