Fw: [問題] 新手請教

看板Linux作者 (安靜)時間9年前 (2017/02/09 13:39), 編輯推噓2(2017)
留言19則, 6人參與, 最新討論串3/3 (看更多)
※ [本文轉錄自 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

02/09 13:43, , 1F
為啥覺得找個 ruby/python 之類的語言 再找個 json parser
02/09 13:43, 1F

02/09 13:43, , 2F
基本上要做的事情就做完了
02/09 13:43, 2F

02/09 13:45, , 3F
然後插入換行用 sed 就能做了 sed 's/,/&\n/g'
02/09 13:45, 3F

02/09 13:45, , 4F
上面是最簡陋的
02/09 13:45, 4F

02/09 13:56, , 5F
命令列可以用 jq 去解析檔案,但不一定比腳本語言簡單
02/09 13:56, 5F

02/09 13:57, , 6F
自己實際使用、比較看看,之後就知道那種方法比較合適
02/09 13:57, 6F

02/09 14:24, , 7F
這是JSON格式 找JSON Parser處理比較方便
02/09 14:24, 7F

02/09 14:41, , 8F
感謝以上指教,因為本身沒有程式基礎,對linux也是趕鴨子上
02/09 14:41, 8F

02/09 14:41, , 9F
架,所以只能慢慢摸索,再利用自己所認知的方式來解決
02/09 14:41, 9F

02/09 14:42, , 10F
這些部分都需要再多多改進的 感謝
02/09 14:42, 10F

02/09 14:43, , 11F
然後這些資料是放在ubuntu 10.04 上面 所以我用 apt-get
02/09 14:43, 11F

02/09 14:43, , 12F
無法安裝jq 來實現..
02/09 14:43, 12F

02/09 14:54, , 13F
jq 自己編譯就好了,jq 只用到標準 C 的功能
02/09 14:54, 13F

02/09 14:54, , 14F
但對新手來說,編譯軟體可能過於困難...
02/09 14:54, 14F

02/09 14:59, , 15F
在 Linux 上有時還是要編譯軟體,學一下還蠻實用的
02/09 14:59, 15F

02/09 17:02, , 16F
可以裝個 nodejs ,直接 eval 也行。
02/09 17:02, 16F

02/09 17:38, , 17F
cat file.txt | python -m json.tool 格式化輸出
02/09 17:38, 17F

02/09 17:39, , 18F
其實這類結構需求用 python 處理幾行可完成
02/09 17:39, 18F

02/10 18:04, , 19F
剛剛測試一下 jq 非常好用,用語法不需要寫程式很方便
02/10 18:04, 19F
文章代碼(AID): #1Od02Pxb (Linux)
討論串 (同標題文章)
文章代碼(AID): #1Od02Pxb (Linux)