[问题] 这样的资料要怎么样用awk处理

楼主: xyzman (.........)   2015-04-13 19:40:48
资料格式:
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重组字串
但怎么测试都无法成功,请问这样的方向正确吗?
还是有其他方法?
作者: cybelia (@@)   2015-04-13 21:38:00
取字段2存入变量1是虾米@@?
作者: nullspace   2015-04-13 21:55:00
差不多是这样,如果资料出现顺序一定是dog,cat,fish的话awk -F : '{n[$1]=$2}/^Fish/{print "("n["Dog"]","n["Cat"]","n["Fish"]")"}' xxx.txt如果是dog/cat/fish夹杂的话就多加一些检查
楼主: xyzman (.........)   2015-04-13 22:18:00
太强了!真的是我要的格式,看了许久完全看不懂为什么!!
作者: nullspace   2015-04-13 22:33:00
awk的阵列是关联式阵列,可以用字串当index用:当分隔符号,n阵列索引$1的值设为字串$2如果资料出现顺序固定为狗猫鱼的话,遇到鱼就把值印出
楼主: xyzman (.........)   2015-04-13 22:54:00
非常感谢你的帮忙跟讲解,这样就清楚这个用法了!
作者: lc85301 (pomelocandy)   2015-04-15 11:00:00
我遇到这个大概会用python 处理=w=

Links booklink

Contact Us: admin [ a t ] ucptt.com