如何从单行 grep

use*_*162 5 api bash grep

我正在使用一个天气 API,它可以在一行中输出所有数据。如何使用 grep 获取“summary”和“apparentTemperature”的值?我对正则表达式的掌握基本上是不存在的,但我已经准备好学习了。

{"latitude":59.433335,"longitude":24.750486,"timezone":"Europe/Tallinn","offset":2,"currently":{"time":1485880052,"summary":"Clear","icon":"clear-night","precipIntensity":0,"precipProbability":0,"temperature":0.76,"apparentTemperature":-3.34,"dewPoint":-0.13,"humidity":0.94,"windSpeed":3.99,"windBearing":262,"visibility":9.99,"cloudCover":0.11,"pressure":1017.72,"ozone":282.98}}
Run Code Online (Sandbox Code Playgroud)

谢谢你!

Aar*_*ron 6

如何使用 grep 获取“summary”和“apparentTemperature”的值?

您使用greps-o标志,这使得它仅输出匹配的部分。

由于您对正则表达式了解不多,我建议您学习使用 JSON 解析器,它更适合此任务。

例如jq,以下命令将提取当前摘要:

<whatever is your JSON source> | jq '.currently.summary'
Run Code Online (Sandbox Code Playgroud)