Grep
如何使用 jq 獲取輸出,因為它為我提供了單詞或字元串進入的整行
我的問題與它有些相似,但仍然允許我詳細說明。我一直在訪問一個名為 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 可以美化它並且 makt ie 容易,誰能告訴我如何。此外,如果有任何其他方式來獲取數據,而不是 curl 也會很有趣。
FWIW 我已經安裝了 ja 1.6,最後的 bash 版本是 5.1.8。
您可以使用:
curl wttr.in/Pune?format=j1 | jq '.current_condition[].localObsDateTime'
與
jq
:curl -s 'http://wttr.in/Pune?format=j1' | jq -r '.current_condition[].localObsDateTime'
輸出:
2021-11-11 03:01 AM