我想从 json 文件中提取一个值,以便我可以处理它,我尝试使用grep '"USDEUR" currs.json' | cut -d ':' -f 2
但它返回0.918695,
,并且 json 文件如下所示:
{
"success":true,
"terms":"https:\/\/currencylayer.com\/terms",
"privacy":"https:\/\/currencylayer.com\/privacy",
"timestamp":1449232988,
"source":"USD",
"quotes":{
"USDEUR":0.918695,
"USDGBP":0.660851,
"USDPLN":3.95815
}
}
所以我想知道如何禁用逗号以便我可以处理 USDEUR 的值
答案1
使用JSON解析器来解析JSON,例如jq
:
$ jq '.quotes.USDEUR' file.json
0.918695
答案2
有多种方法可以做到这一点。您可以通过以下任一方式传输结果
tr -d ','
cut -d',' -f1
sed -e 's/,//'
答案3
与 puregrep
使用 perl 兼容的正则表达式(-P
选项):
grep -Po 'USDEUR":\K.*(?=,)' file
\K
会扔掉一切直到:
(?=,)
会扔掉之后的所有东西,
(包括,
)
答案4
添加另一个切口。
grep '"USDEUR" currs.json' | cut -d ':' -f 2 | cut -d',' -f 1