perl 对2个txt文件内容进行按ID关联操作生成新的txt文件 10

求个perl的案例,每个文件的数据量上千万,最后考虑到linux服务器处理时占用内存情况,谢谢~a.txt内容:idnameageaddress1李林18北京2张三22天... 求个perl的案例,每个文件的数据量上千万,最后考虑到linux服务器处理时占用内存情况,谢谢~
a.txt内容:
id name age address
1 李林 18 北京
2 张三 22 天津
3 王五 32 上海

b.txt内容:
sex id phone
男 1 13024
女 3 15678
男 5 1678

c.txt生成后的文件内容:
id name address sex phone
1 李林 北京 男 13024
3 王五 上海 男 1678
最后成生的文件是这个,上面少了个sex列:

c.txt生成后的文件内容:
id name address sex phone
1 李林 北京 男 18 13024
3 王五 上海 男 32 1678
展开
 我来答
芯信止越夜山2G
2018-11-16 · TA获得超过283个赞
知道小有建树答主
回答量:566
采纳率:74%
帮助的人:76.1万
展开全部
程序代码: my(%d1,%d2,$str,$key,$val);my($id,$a,$b,$c,$d,$e,$f,$g);#读取文件1open(FD,'1');while(){ chomp; ($id,$a,$b,$c,$d)=split(/\s+/); $d1{$id}="$a\t$b\t$c\t$d";}close(FD);#读取文件2open(FD,'2');while(){ chomp; ($id,$e,$f,$g)=split(/\s+/); $d2{$id}="$e\t$f\t$g";}close(FD);#生成文件3open(FD,'>3');foreach $id (keys %d1){ print FD "$id\t".$d1{$id}."\t".(exists($d2{$id})?$d2{$id}:"NA\tNA\tNA")."\n"; delete($d2{$id}) if (exists($d2{$id}));}foreach $id (keys %d2){ print FD "$id\t".(exists($d1{$id})?$d1{$id}:"NA\tNA\tNA")."\t".$d2{$id}."\n";}close(FD); 运行拷屏:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式