我想使用grep从JSON文件中获取一个数字 例如,我希望从获得 1.0872 :
{"base":"EUR","date":"2016-03-01","rates":{"USD":1.0872}}
使用
grep "USD" rates
给出了整行
{"base":"EUR","date":"2016-03-01","rates":{"USD":1.0872}}
我只想显示 1.0872 。
我尝试使用正则表达式但它不起作用(可能是我之前从未做过这个错误):
grep -oP '(?<="USD"\:)\w+' file
答案 0 :(得分:0)
对于“普通”整数和浮点值,您可以使用
grep -oP '(?<="USD":)\d+(?:\.\d+)?' file
如果您的号码没有整数部分且可以.
开头,请使用
grep -oP '(?<="USD":)\d*\.?\d+' file
可选-
:
grep -oP '(?<="USD":)-?\d*\.?\d+' file
请参阅IDEONE demo