ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【shell 】求两个文件相加的脚本

【shell 】求两个文件相加的脚本

原创 Linux操作系统 作者:杨奇龙 时间:2011-03-13 17:19:01 0 删除 编辑
root@client.example.com # cat a.txt
100k f1.myd
200k f2.myd
300k f3.myd
200k f4.myd
100k f5.myd
root@client.example.com # cat b.txt
100k f1.myd
200k f2.myd
300k f3.myd
200k f4.myd
100k f5.myd
==希望得到两个文件相加的结果:
200k f1.myd
400k f2.myd
600k f3.myd
400k f4.myd
200k f5.myd
===方法一
root@client.example.com # paste a.txt b.txt
100k f1.myd     100k f1.myd
200k f2.myd     200k f2.myd
300k f3.myd     300k f3.myd
200k f4.myd     200k f4.myd
100k f5.myd     100k f5.myd
root@client.example.com # paste a.txt b.txt | awk '{print $1+$3"k "$2}'
200k f1.myd
400k f2.myd
600k f3.myd
400k f4.myd
200k f5.myd
root@client.example.com #
root@client.example.com # time paste a.txt b.txt | awk '{print $1+$3"k "$2}'
200k f1.myd
400k f2.myd
600k f3.myd
400k f4.myd
200k f5.myd

real    0m0.002s
user    0m0.001s
sys     0m0.002s
===方法二 。。不如方法一 友好
root@client.example.com # time cat a.txt >> b.txt ; awk '{a[$2]+=$1}END{for(i in a)print i,a[i]}' b.txt

real    0m0.001s
user    0m0.000s
sys     0m0.002s
f5.myd 200
f4.myd 400
f3.myd 600
f2.myd 400
f1.myd 200
root@client.example.com #

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-689305/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7699858