免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: gavinzhm
打印 上一主题 下一主题

两个文件求和 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-08-16 21:42 |只看该作者
回复 9# gavinzhm


    楼主,日本人没欺负你吧?

论坛徽章:
0
12 [报告]
发表于 2010-08-17 08:27 |只看该作者
回复  gavinzhm


    楼主,日本人没欺负你吧?
bbgg1983 发表于 2010-08-16 21:42



    偶打工而已这种问题谈不上

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
13 [报告]
发表于 2010-08-17 12:46 |只看该作者
回复 10# gavinzhm
  1. ly5066113@ubuntu:~$ cat 1.txt
  2. 2010/08/01      qw121.qhit.net  17189
  3.         mobile.daiwa.co.jp      15715
  4.         ot13.qhit.net   6514
  5.         mobile.daiwa.jp 982
  6.         set.daiwa.co.jp 6
  7. 2010/08/02      qw121.qhit.net  331485
  8.         mobile.daiwa.co.jp      259344
  9.         ot13.qhit.net   187007
  10.         mobile.daiwa.jp 1400
  11.         set.daiwa.co.jp 18
  12. 2010/08/03      qw121.qhit.net  348013
  13.         mobile.daiwa.co.jp      286724
  14.         ot13.qhit.net   198367
  15.         mobile.daiwa.jp 2061
  16.         set.daiwa.co.jp 20
  17. ly5066113@ubuntu:~$ cat 2.txt
  18. 2010/08/01      mobile.daiwa.co.jp      3412
  19.         qw121.qhit.net  513
  20.         ot13.qhit.net   261
  21.         daiwa365fx.daiwa.co.jp  127
  22.         fx.daiwa.co.jp  50
  23.         mobile.daiwa.jp 50
  24.         daiwacfd.daiwa.co.jp    2
  25. 2010/08/02      mobile.daiwa.co.jp      8205
  26.         fx.daiwa.co.jp  1825
  27.         ot13.qhit.net   1461
  28.         qw121.qhit.net  923
  29.         daiwa365fx.daiwa.co.jp  440
  30.         mobile.daiwa.jp 148
  31.         daiwacfd.daiwa.co.jp    1
  32. 2010/08/03      mobile.daiwa.co.jp      8728
  33.         fx.daiwa.co.jp  1506
  34.         daiwa365fx.daiwa.co.jp  1469
  35.         ot13.qhit.net   1427
  36.         qw121.qhit.net  795
  37.         mobile.daiwa.jp 126
  38. ly5066113@ubuntu:~$ awk -F '\t' 'FNR==1{i++}/^[0-9]/{d=$1;a[d]++}{b[$2]++;c[d","$2","i]=$3}END{for(i in a){printf i;for(j in b){print "\t"j"\t"c[i","j","1]+0"\t"c[i","j","2]+0"\t"c[i","j","1]+c[i","j","2]}}}' 1.txt 2.txt
  39. 2010/08/01      set.daiwa.co.jp 6       0       6
  40.         daiwa365fx.daiwa.co.jp  0       127     127
  41.         mobile.daiwa.jp 982     50      1032
  42.         fx.daiwa.co.jp  0       50      50
  43.         ot13.qhit.net   6514    261     6775
  44.         daiwacfd.daiwa.co.jp    0       2       2
  45.         qw121.qhit.net  17189   513     17702
  46.         mobile.daiwa.co.jp      15715   3412    19127
  47. 2010/08/02      set.daiwa.co.jp 18      0       18
  48.         daiwa365fx.daiwa.co.jp  0       440     440
  49.         mobile.daiwa.jp 1400    148     1548
  50.         fx.daiwa.co.jp  0       1825    1825
  51.         ot13.qhit.net   187007  1461    188468
  52.         daiwacfd.daiwa.co.jp    0       1       1
  53.         qw121.qhit.net  331485  923     332408
  54.         mobile.daiwa.co.jp      259344  8205    267549
  55. 2010/08/03      set.daiwa.co.jp 20      0       20
  56.         daiwa365fx.daiwa.co.jp  0       1469    1469
  57.         mobile.daiwa.jp 2061    126     2187
  58.         fx.daiwa.co.jp  0       1506    1506
  59.         ot13.qhit.net   198367  1427    199794
  60.         daiwacfd.daiwa.co.jp    0       0       0
  61.         qw121.qhit.net  348013  795     348808
  62.         mobile.daiwa.co.jp      286724  8728    295452
  63. ly5066113@ubuntu:~$ awk --version
  64. GNU Awk 3.1.6
  65. Copyright (C) 1989, 1991-2007 Free Software Foundation.
复制代码

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
14 [报告]
发表于 2010-08-17 13:13 |只看该作者
学习……
果然滴水不漏啊

论坛徽章:
0
15 [报告]
发表于 2010-08-17 13:26 |只看该作者
回复  gavinzhm
ly5066113 发表于 2010-08-17 12:46



    谢谢,今天到公司拿LINUX试了一下OK了
昨天在家用MAC试的好像有点问题

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
16 [报告]
发表于 2010-08-17 13:33 |只看该作者
楼主在JAPAN啊,
薪水是不是比国内高很多啊。相对而言。

论坛徽章:
0
17 [报告]
发表于 2010-08-22 11:06 |只看该作者
回复 15# gavinzhm


    [root@Dan scripts]# awk 'NR==FNR{if(NF==3){flag=$1;a[flag" "$2]=$3}else{a[flag" "$1]=$2}}NR>FNR{if(NF==3){flag=$1;print flag"      "$2"   "a[flag" "$2]"   "$3"    "a[flag" "$2]+$3}else{printf "            "$1" ";printf a[flag" "$1]!=null?a[flag" "$1]:"0";print "    "$2"     "a[flag" "$1]+$2}}' linux.190 linux.191  
2010/08/01      mobile.daiwa.co.jp   15715   3412    19127
            qw121.qhit.net 17189    513     17702
            ot13.qhit.net 6514    261     6775
            daiwa365fx.daiwa.co.jp 0    127     127
            fx.daiwa.co.jp 0    50     50
            mobile.daiwa.jp 982    50     1032
            daiwacfd.daiwa.co.jp 0    2     2
2010/08/02      mobile.daiwa.co.jp   259344   8205    267549
            fx.daiwa.co.jp 0    1825     1825
            ot13.qhit.net 187007    1461     188468
            qw121.qhit.net 331485    923     332408
            daiwa365fx.daiwa.co.jp 0    440     440
            mobile.daiwa.jp 1400    148     1548
            daiwacfd.daiwa.co.jp 0    1     1
2010/08/03      mobile.daiwa.co.jp   286724   8728    295452
            fx.daiwa.co.jp 0    1506     1506
            daiwa365fx.daiwa.co.jp 0    1469     1469
            ot13.qhit.net 198367    1427     199794
            qw121.qhit.net 348013    795     348808
            mobile.daiwa.jp 2061    126     2187







我也写了一个~花了我一个小时的时间~不过感觉很爽HOHO~

论坛徽章:
0
18 [报告]
发表于 2010-08-22 22:21 |只看该作者
回复 17# iori809


     呆呆兄果然勇猛

我也搞了个把小时,还出的是个残次品。

看看各位老大的思路

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
19 [报告]
发表于 2010-08-23 13:33 |只看该作者
本帖最后由 rdcwayx 于 2010-08-23 13:38 编辑

我也写了一个,但要分开几步。感觉还是对awk里的三维数组的控制力不够啊。

# 先调整格式,使得每行都有日期。
  1. awk '/\// {a=$1;print;next}{print a,$0}' file1 > temp1
  2. awk '/\// {a=$1;print;next}{print a,$0}' file2 > temp2
复制代码
#得出结果,顺便将结果按照日期和总计的大小排序 (注意这个可以输出 set.daiwa.co.jp的统计, 这个域名只出现在file1, 不出现在file2, 但是楼主似乎不需要这个。 如果不要求的话,将下面的END部分去掉就可以了。)
  1. awk '
  2. NR==FNR{f=FILENAME;a[$1];b[$1 FS $2 FS f]=$3;c[$1 FS $2];next}
  3. {
  4.   s=$1 FS $2 FS f
  5.   if (($1 in a)&&(s in b)) print $1,$2,b[s],$3,$3+b[s]
  6.   if (!(s in b)) print $1,$2,0,$3,$3
  7.   d[$1 FS $2]
  8. }
  9. END { for (i in c) { if (!(i in d)) print i,b[i FS f],"0",b[i FS f] }}
  10. ' temp1 temp2|sort -k1.1,1.10 -k5.1,5.10nr >temp3
复制代码
# 再去掉日期部分,只保留和输出第一个日期。
  1. awk '{
  2. if (a[$1])
  3.   {printf "\t\t%-20s\t%d\t%d\t%d\n",$2,$3,$4,$5}
  4. else
  5.   {a[$1]=$1;printf "%s\t%-20s\t%d\t%d\t%d\n",$1,$2,$3,$4,$5}}' temp3
复制代码

论坛徽章:
0
20 [报告]
发表于 2010-08-23 14:15 |只看该作者
回复 18# jiwang1980


    呵呵~我还差得远呢~
你要常来CU泡的话也可以呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP