我創建一個bash腳本解析從網頁中的空氣污染水平: http://aqicn.org/city/beijing/m/類似琴絃,不同的結果
有文件中的很多東西,但這是相關的位:
「iaqi」:[{ 「p」: 「PM25」, 「v」:[,21112]中, 「i」:「北京PM25(細 顆粒狀物質)由美國使館空氣質量測量 Monitor (\ u7f8e \ u56fd \ uaba7b \ u5317 \ u4eac \ u5927 \ u4f7f \ u9986 \ u7a7a \ u14c14 \ u8d28 \ u91cf \ u76d1 \ u6d4b)。 使用EPA 標準將值從\ u00b5g/m3轉換爲AQI水平。「},{」p「:」pm10「,」v「:[,569],」i「:」Beijing PM10 (可吸入顆粒物),由北京環境 保護監測中心
我想要的腳本來分析和測量顯示2個數字:目前PM2.5和PM10的水平(該號碼大膽上面的段落)。
CITY="beijing"
AQIDATA=$(wget -q 0 http://aqicn.org/city/$CITY/m/ -O -)
PM25=$(awk -v FS="(\"p\":\"pm25\",\"v\":\\\[|,[0-9]+)" '{print $2}' <<< $AQIDATA)
PM100=$(awk -v FS="(\"p\":\"pm10\",\"v\":\\\[|,[0-9]+)" '{print $2}' <<< $AQIDATA)
echo $PM25 $PM100
即使我可以讓PM2.5級別正確顯示,我不能獲得PM10級別顯示。我不明白爲什麼,因爲字符串是相似的。
這裏有人能解釋嗎?
的數據看起來很像JSON。你有沒有考慮過使用AWK或Bash JSON解析器?有一些在http://www.json.org列出。 –