求助:perl删除两个文件前三列均相同的行。
1.txt110201714050283789046399100582.txt1102037890399100想要结果:1405028...
1.txt
1 10 20 1 7
1 40 50 2 8
3 78 90 4 6
3 99 100 5 8
2.txt
1 10 20
3 78 90
3 99 100
想要结果:
1 40 50 2 8 展开
1 10 20 1 7
1 40 50 2 8
3 78 90 4 6
3 99 100 5 8
2.txt
1 10 20
3 78 90
3 99 100
想要结果:
1 40 50 2 8 展开
展开全部
open(A, '1.txt');
while (<A>) {
chmop;
@m = split(" ", $_);
$h{($m[0]*1000+ $m[1])*1000 + $m[2]} = 1;
}
close(A);
open(B, '2.txt');
while (<B>) {
chmop;
@m = split(" ", $_);
print if (! exists $h{($m[0]*1000+ $m[1])*1000 + $m[2]} );
}
close(B);
while (<A>) {
chmop;
@m = split(" ", $_);
$h{($m[0]*1000+ $m[1])*1000 + $m[2]} = 1;
}
close(A);
open(B, '2.txt');
while (<B>) {
chmop;
@m = split(" ", $_);
print if (! exists $h{($m[0]*1000+ $m[1])*1000 + $m[2]} );
}
close(B);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询