免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1811 | 回复: 8
打印 上一主题 下一主题

[文本处理] awk 处理以下文本,如何处理? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-08 14:54 |只看该作者 |倒序浏览
file:
a001 1 100
a001 2 700
a002 1 500
a002 2 100
a003 1 100


形成:
a001  2 600
a002  1 400
a003  1 100

既:按第一列, 统计第三列的差额 (第三列哪个值大,第二列, 置成值大的哪一行第二列)

论坛徽章:
0
2 [报告]
发表于 2012-09-08 17:03 |只看该作者
  1. [netslyz@noopoo ~]$ sort -k3 file|awk '{a[$1]=$1FS$2;b[$1]=$3-b[$1]}END{for(i in a)print a[i],b[i]}'
  2. a001 2 600
  3. a002 1 400
  4. a003 1 100
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
3 [报告]
发表于 2012-09-08 18:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-08-03 06:20:00IT运维版块每日发帖之星
日期:2015-08-07 06:20:00
4 [报告]
发表于 2012-09-13 11:52 |只看该作者
回复 3# zooyo
最近准备好好学习awk 麻烦版主给讲解一下

我按这个执行 得到的结果是这个
[root@master opt]# awk 'NR>1{if(x==$1){if($3>z){$3=$3-z}else{$3=z-$3;$2=y}}else{print x,y,z}}{x=$1;y=$2;z=$3}' file
a001 2 600
a002 1 400

[root@master opt]# cat file
a001 1 100
a001 2 700
a002 1 500
a002 2 100
a003 1 100

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
5 [报告]
发表于 2012-09-13 12:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-08-03 06:20:00IT运维版块每日发帖之星
日期:2015-08-07 06:20:00
6 [报告]
发表于 2012-09-13 13:44 |只看该作者
回复 5# zooyo


   完整是可以的 不过能否讲解一下 <(echo)这个是啥意思啊 麻烦了

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
7 [报告]
发表于 2012-09-13 14:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
数据库技术版块每日发帖之星
日期:2015-08-03 06:20:00IT运维版块每日发帖之星
日期:2015-08-07 06:20:00
8 [报告]
发表于 2012-09-13 14:07 |只看该作者
回复 7# zooyo


    谢谢版主的耐心教导  继续学习

论坛徽章:
0
9 [报告]
发表于 2012-09-20 15:36 |只看该作者
  1. awk '{if(!a[$1]){a[$1]=$3;b[$1]=$3;c[$1]=$2}else{if($3>a[$1]){b[$1]=$3-a[$1];c[$1]=$2}else{b[$1]=a[$1]-$3}}}END{for(i in a)print i,c[i],b[i]}' file
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP