[问题] 新手请教

楼主: 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