作者xyzman (.........)
看板Linux
標題[問題] 這樣的資料要怎麼樣用awk處理
時間Mon Apr 13 19:40:48 2015
資料格式:
Dog:12345
Cat:67890
Fish:13579
Dog:abcde
Cat:fghijk
Fish:lmnop
......
......
我需要將資料重組成
(12345,67890,13579)
(abcde,fghijk,lmnop)
我的想法是將每個區塊資料
match關鍵字(dog/cat/fish)並以:為分隔符號,取欄位2存入變數1
其他以此類推,最後再用print重組字串
但怎麼測試都無法成功,請問這樣的方向正確嗎?
還是有其他方法?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.130.32
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1428925250.A.ABB.html
※ 編輯: xyzman (36.228.130.32), 04/13/2015 19:41:45
1F:→ cybelia: 取欄位2存入變數1是蝦米@@? 04/13 21:38
2F:→ nullspace: 差不多是這樣,如果資料出現順序一定是dog,cat,fish的話 04/13 21:55
3F:→ nullspace: awk -F : '{n[$1]=$2}/^Fish/{print "("n["Dog"]"," 04/13 21:55
4F:→ nullspace: n["Cat"]","n["Fish"]")"}' xxx.txt 04/13 21:55
5F:→ nullspace: 如果是dog/cat/fish夾雜的話就多加一些檢查 04/13 21:57
6F:→ xyzman: 太強了!真的是我要的格式,看了許久完全看不懂為什麼!! 04/13 22:18
7F:→ nullspace: awk的陣列是關聯式陣列,可以用字串當index 04/13 22:33
8F:→ nullspace: 用:當分隔符號,n陣列索引$1的值設為字串$2 04/13 22:35
9F:→ nullspace: 如果資料出現順序固定為狗貓魚的話,遇到魚就把值印出 04/13 22:36
10F:→ xyzman: 非常感謝你的幫忙跟講解,這樣就清楚這個用法了! 04/13 22:54
11F:→ lc85301: 我遇到這個大概會用python 處理=w= 04/15 11:00