私の質問はかなり似ていますが、まだ詳細に説明できます。天気情報を取得できるwttr.inという天気アプリにアクセスしています。これは簡単に行うことができます -
$ curl wttr.in/Pune?format=4
気象観測所が現在のデータを提供しているのか、古いデータを提供しているのかを知りたいです。この目的のために、サーバーは、天気情報が最後に更新された時刻を提供するj1形式という形式について知っています。
$ curl wttr.in/Pune?format=j1 | less
上記のクエリは、次のような多くのデータを提供します。
current_condition": [
{
"FeelsLikeC": "18",
"FeelsLikeF": "65",
"cloudcover": "4",
"humidity": "42",
"localObsDateTime": "2021-11-11 12:20 AM",
"observation_time": "06:50 PM",
"precipInches": "0.0",
"precipMM": "0.0",
"pressure": "1012",
"pressureInches": "30",
"temp_C": "18",
grepを使用すると、次のような出力が得られます。
$ curl wttr.in/Pune?format=j1 | grep "localObsDateTime"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
2 48685 2 1159 0 0 4199 0 0:00:11 --:--:-- 0:00:11 4184 "localObsDateTime": "2021-11-11 12:20 AM",
100 48685 100 48685 0 0 90830 0 --:--:-- --:--:-- --:--:-- 90661
jqはそれを素敵に飾り、シンプルにすることができると聞きました。誰かが何をしているのか教えてもらえますか?また、カールの代わりにデータを取得する別の方法がある場合は興味深いでしょう。
FWIW ja 1.6がインストールされており、bashバージョンは5.1.8です。
ベストアンサー1
そしてjq
:
curl -s 'http://wttr.in/Pune?format=j1' | jq -r '.current_condition[].localObsDateTime'
出力:
2021-11-11午前03:01