我有两个数据文件,a.txt和b.txt
a.txt存放主机名,如:
hostname0 aaa
hostname1 aaa
hostname2 bbb
hostname3 bbb
hostname4 ccc
hostname5 aaa
hostname6 vvv
b.txt存放一个主机和资源对照关系,如:
hostname1 100
hostname5 100
hostname6 200
hostname7 3000
hostname8 520
我要实现:a.txt中的主机,如果在b.txt文件中有资源,增加对应资源;如果没有资源,保持不变。但是b.txt中有而a.txt中没有的主机,不需要列出。
如上例最后得出:
hostname0 aaa 100
hostname1 aaa
hostname2 bbb
hostname3 bbb
hostname4 ccc
hostname5 aaa 100
hostname6 vvv
[color=red]注意:我需要一个比较高效的方法,以至于文件较大时候,效率也不会太低。
最好shell或者python实现,也可以告诉我个好的算法。[/color]
用HashMap实现,把A文件的两个数据作为Key和Value,然后读B文件,读一行就从HashMap中取,有的话,就把Value拼起来。
这个需求用数据库实现最合适 两select 全部搞定
使用perl吧
在perl里使用hash,给分太少,没有兴趣亲自写,你给50分吧,哥就写个给你