看板 Linux 關於我們 聯絡資訊
※ [本文轉錄自 Editor 看板 #1Od01Mhk ] 作者: asdrt (安靜) 看板: Editor 標題: [問題] 新手請教 時間: Thu Feb 9 13:38:27 2017 目前有一批資料 擷取下來是 {"id":"1da58d7f-ac5f-4e3b-b5b0-65b36c0de68f","macAddr":"04000246","data":"4e32352e30343636333432","buff":"2016-10-20T04:49:49.420Z","recv":"2016-10-20T04:49:4 9.000Z","extra":{"gwip":"172.16.5.15","gwid":"00001c497b3b8127","repeater":"00000000ffffffff","systype":4,"rssi":-121.2$"snr":-13.2}} 這樣為一 筆資料 但是我只想要裡面的 macAdrr , data , gwip 這裡面的資料 我的作法是資料抓下來後用 vim 讓她換行成 { "id":"1da58d7f-ac5f-4e3b-b5b0-65b36c0de68f", "macAddr":"04000246", "data":"4e32352e30343636333432", "buff":"2016-10-20T04:49:49.420Z", "recv":"2016-10-20T04:49:49.000Z", "extra":{"gwip":"172.16.5.15", "gwid":"00001c497b3b8127", "repeater":"00000000ffffffff", "systype":4, "rssi":-121.2, "snr":-13.2} } 再利用 grep , sed 等方式方式取出成單一資料 再用 paste > 變成多行資料 想請問的是 1. 換行這個工作可否直接用 sed 來做或是其他的指令來完成 2. 我有一個步驟是要把 4e32352e30343636333432 用 decode的方式轉回 text , 目前也是土法煉鋼把資料取出後 (因為我只會用 grep 所以不知道怎麼把 data 去掉 orz ) 再用 echo 的方式來做轉譯 再丟回去我的文件組合成我要的 csv (,分隔檔案) 抱歉 問題有點多 也請指點迷津 感謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.74.124.79 ※ 文章網址: https://www.ptt.cc/bbs/Editor/M.1486618710.A.AEE.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: asdrt (203.74.124.79), 02/09/2017 13:39:35
CP64: 為啥覺得找個 ruby/python 之類的語言 再找個 json parser 02/09 13:43
CP64: 基本上要做的事情就做完了 02/09 13:43
CP64: 然後插入換行用 sed 就能做了 sed 's/,/&\n/g' 02/09 13:45
CP64: 上面是最簡陋的 02/09 13:45
Neisseria: 命令列可以用 jq 去解析檔案,但不一定比腳本語言簡單 02/09 13:56
Neisseria: 自己實際使用、比較看看,之後就知道那種方法比較合適 02/09 13:57
dennisxkimo: 這是JSON格式 找JSON Parser處理比較方便 02/09 14:24
asdrt: 感謝以上指教,因為本身沒有程式基礎,對linux也是趕鴨子上 02/09 14:41
asdrt: 架,所以只能慢慢摸索,再利用自己所認知的方式來解決 02/09 14:41
asdrt: 這些部分都需要再多多改進的 感謝 02/09 14:42
asdrt: 然後這些資料是放在ubuntu 10.04 上面 所以我用 apt-get 02/09 14:43
asdrt: 無法安裝jq 來實現.. 02/09 14:43
Neisseria: jq 自己編譯就好了,jq 只用到標準 C 的功能 02/09 14:54
Neisseria: 但對新手來說,編譯軟體可能過於困難... 02/09 14:54
Neisseria: 在 Linux 上有時還是要編譯軟體,學一下還蠻實用的 02/09 14:59
hijkxyzuw: 可以裝個 nodejs ,直接 eval 也行。 02/09 17:02
kenduest: cat file.txt | python -m json.tool 格式化輸出 02/09 17:38
kenduest: 其實這類結構需求用 python 處理幾行可完成 02/09 17:39
kenduest: 剛剛測試一下 jq 非常好用,用語法不需要寫程式很方便 02/10 18:04