[問題] 新手請教

作者: asdrt (安靜)   2017-02-09 13:38:27
目前有一批資料 擷取下來是
{"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 (,分隔檔案)
抱歉 問題有點多
也請指點迷津
感謝
作者: rein (rein)   2017-02-09 13:41:00
作者: akria (akria)   2017-02-11 19:10:00
看起來好像可以一次用取代做完。有試過 \( \) 嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com