新手請教 - Linux

Kama avatar
By Kama
at 2017-02-09T13:39

Table of Contents

※ [本文轉錄自 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 (,分隔檔案)

抱歉 問題有點多
也請指點迷津
感謝

--


--
Tags: Linux

All Comments

Hedda avatar
By Hedda
at 2017-02-13T11:44
為啥覺得找個 ruby/python 之類的語言 再找個 json parser
基本上要做的事情就做完了
Kristin avatar
By Kristin
at 2017-02-14T10:56
然後插入換行用 sed 就能做了 sed 's/,/&\n/g'
上面是最簡陋的
Kyle avatar
By Kyle
at 2017-02-18T06:05
命令列可以用 jq 去解析檔案,但不一定比腳本語言簡單
Bethany avatar
By Bethany
at 2017-02-22T12:57
自己實際使用、比較看看,之後就知道那種方法比較合適
Connor avatar
By Connor
at 2017-02-26T01:15
這是JSON格式 找JSON Parser處理比較方便
Eartha avatar
By Eartha
at 2017-02-26T21:41
感謝以上指教,因為本身沒有程式基礎,對linux也是趕鴨子上
架,所以只能慢慢摸索,再利用自己所認知的方式來解決
Zora avatar
By Zora
at 2017-03-03T20:30
這些部分都需要再多多改進的 感謝
Noah avatar
By Noah
at 2017-03-04T20:37
然後這些資料是放在ubuntu 10.04 上面 所以我用 apt-get
無法安裝jq 來實現..
Hardy avatar
By Hardy
at 2017-03-05T16:37
jq 自己編譯就好了,jq 只用到標準 C 的功能
但對新手來說,編譯軟體可能過於困難...
Iris avatar
By Iris
at 2017-03-09T19:43
在 Linux 上有時還是要編譯軟體,學一下還蠻實用的
Agatha avatar
By Agatha
at 2017-03-14T01:52
可以裝個 nodejs ,直接 eval 也行。
Rachel avatar
By Rachel
at 2017-03-14T18:16
cat file.txt | python -m json.tool 格式化輸出
Mason avatar
By Mason
at 2017-03-15T21:32
其實這類結構需求用 python 處理幾行可完成
Agatha avatar
By Agatha
at 2017-03-20T06:15
剛剛測試一下 jq 非常好用,用語法不需要寫程式很方便

ssh 連線問題

John avatar
By John
at 2017-02-05T00:11
我網路不熟所以上來問一下 我有AB兩台桌機 A桌機ip是DHCP 取得, ip不是實體ip B桌機 用pppoe 取得 ip 實體浮動ip 那我想用ssh透過桌機連到 raspberry pi 板子, 板子也是用pppoe 取得實體浮動IP A桌機無法透過ssh 連到板子會卡住 , 但是B桌機可以順利 ...

Linux mint的browser都不能看news520

Hedy avatar
By Hedy
at 2017-02-04T18:28
作業系統:Linux mint 18(64bit) 瀏覽器:Firefox(51.0.1)64bit 及 Google chorme(56.0.2924.87) 問題:在Linux作業系統下用Firefox 或 Chrome 無法觀看網站and#34;news520and#34;的影片, 已確定把所有Pl ...

要如何傳檔案到VNC server

Delia avatar
By Delia
at 2017-02-04T17:35
不好意思, 我之前有在Fedora 10安裝好VNC server, 然後用windows的Real VNC登入時, 可以成功的登入,也可以遠端操控VNC server, 但是卻沒辦法傳檔案到VNC server, Real VNC出現了不支援檔案傳輸的訊息.如下圖: http://photo.xuit ...

在 Android 裝置安裝 Linux (Debian)

Hamiltion avatar
By Hamiltion
at 2017-02-04T04:36
在 xda-developers 網站的文章 Guide: Installing and Running a GNU/Linux Environment on Any Android Device http://bit.ly/2kHjXyl 在 Android 裝置安裝 Linux 環境(Debian) ...

sort 有辦法由低位數排序嗎?

George avatar
By George
at 2017-02-03T23:08
我的意思是,原始資料如下: 003 074 177 760 能否排序成 760 003 074 177 這樣,由右方開始依序往左比對。 如果sort不能的話,Linux上有辦法用簡單script達成嗎? 其實是剛剛對發票想到的啦!每次對發票都有這煩惱,不過對完就忘了 XD - ...