這樣的資料要怎麼樣用awk處理 - Linux

Table of Contents

資料格式:
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重組字串
但怎麼測試都無法成功,請問這樣的方向正確嗎?
還是有其他方法?


--

All Comments

Ida avatarIda2015-04-13
取欄位2存入變數1是蝦米@@?
Oscar avatarOscar2015-04-16
差不多是這樣,如果資料出現順序一定是dog,cat,fish的話
awk -F : '{n[$1]=$2}/^Fish/{print "("n["Dog"]","
n["Cat"]","n["Fish"]")"}' xxx.txt
Damian avatarDamian2015-04-17
如果是dog/cat/fish夾雜的話就多加一些檢查
Isabella avatarIsabella2015-04-22
太強了!真的是我要的格式,看了許久完全看不懂為什麼!!
Christine avatarChristine2015-04-26
awk的陣列是關聯式陣列,可以用字串當index
Tom avatarTom2015-04-30
用:當分隔符號,n陣列索引$1的值設為字串$2
Mason avatarMason2015-05-01
如果資料出現順序固定為狗貓魚的話,遇到魚就把值印出
Michael avatarMichael2015-05-04
非常感謝你的幫忙跟講解,這樣就清楚這個用法了!
Carol avatarCarol2015-05-06
我遇到這個大概會用python 處理=w=