Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2043037
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-20 13:09:04

col1;val1 1;val2 1
col2;val1 2;val2 2
col1;val1 1;val2 1
col2;val1 2;val2 2

将列1相同的的列2,列3求和,最后形成

col1;val1 2;val2 2
col2;val1 4;val2 4

用shell 怎么实现呢



您对本贴的看法:
| |
  帅哥 ((小学生))
风云使者
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-04-20
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-20 11:48 
回复 #1 alunfirst 的帖子

没有环境测试

try:

awk -F'[;| ]' '{a[$1]+=$3;b[$1]+=$5}{for(i in a);print i,a,b}' ufile



您对本贴的看法:

__________________________________

小学生
| |
(我在学习,我要进步)
精灵使
打破水锅问到底。




CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-20
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 11:58 


CODE:
[test@ ~ ] $ awk -F'[;| ]' '{a[$1";"$2]+=$3;b[$1";"$2]+=$5}END{for (i in a ) print i,a[i]";val2 "b[i]}' 1
col2;val1 4;val2 4
col1;val1 2;val2 2




您对本贴的看法:

__________________________________

有时候回答问题是信口开河......
因此不保证所有回复问题的答案的准确性.
如果正好是对的,那是碰到了死耗子..呵呵.

| |

天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-04-20
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-20 12:01 
awk -F ';val[12] ' '{a[$1]+=$2;b[$1]+=$3}END{for (j in a) print j";val1",a[j]";val2",b[j]}' file



您对本贴的看法:

__________________________________

shell新手&&awk新手
我的awk学习笔记
http://blog.chinaunix.net/u3/91453/showart_1798635.html

阅读(509) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~