処理できるように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
pure(オプション)でgrep
Perl準拠の正規表現を使用してください。-P
grep -Po 'USDEUR":\K.*(?=,)' file
\K
それまですべてを捨てる:
(?=,)
その後、すべてを捨てます,
(含む,
)
答え4
別のカットアウトを追加してください。
grep '"USDEUR" currs.json' | cut -d ':' -f 2 | cut -d',' -f 1