免费注册 查看新帖 |

Chinaunix

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

各位高手,帮我看看这个shell如何写,急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-10 12:39 |只看该作者 |倒序浏览
当日期,商店,品种都相同时,统计数量和金额
顾客  日期     商店    品种   价格 数量 金额
a|2003-12-1|store1|apple|10.00|2|20.00
a|2003-12-1|store1|apple|10.00|3|30.00
a|2003-12-1|store2|pear|15.00|3|45.00
b|2003-12-1|store1|apple|10.00|2|20.00
b|2003-9-1|store2|pear|15.00|2|30.00
b|2003-9-1|store2|pear|15.00|4|60.00
我需要转化后的文本是
日期         商店   品种   价格 数量 金额
2003-12-1|store1|apple|10.00|7|70.00
2003-9-1|store2|pear|15.00|6|90.00
2003-12-1|store2|pear|15.00|3|45.00

论坛徽章:
0
2 [报告]
发表于 2004-02-10 13:48 |只看该作者

各位高手,帮我看看这个shell如何写,急!!!

awk就可以,man一下,很简单

论坛徽章:
0
3 [报告]
发表于 2004-02-10 18:37 |只看该作者

各位高手,帮我看看这个shell如何写,急!!!

head -1 file | cut -d" " -f2-7 > newfile
sed -n '2,$'p file | cut -d"|" -f2-7 >> newfile

论坛徽章:
0
4 [报告]
发表于 2004-02-11 09:37 |只看该作者

各位高手,帮我看看这个shell如何写,急!!!

斑竹就不肯露两手以解救小弟的燃眉之急吗?多谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-02-11 11:48 |只看该作者

各位高手,帮我看看这个shell如何写,急!!!

嗯?解急的話,labrun 兄的你試過了嗎?

论坛徽章:
0
6 [报告]
发表于 2004-02-11 13:38 |只看该作者

各位高手,帮我看看这个shell如何写,急!!!

#!/bin/awk -f

{
        if (7 == NF)
        {
                num[$2,"|",$3,"|",$4] += $6;
                money[$2,"|",$3,"|",$4] += $7;
                price[$2,"|",$3,"|",$4] = $5;
        }
}
END{
        for(val in num)
        {
                printf("%s|%s|%s|%s\n",
                        val,
                        price[val],
                        num[val],
                        money[val]);
        }
}


=========
保存为test,运行 ./test -F '|' yourfile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP