0

我有 2 个文件:A.txt 和 B.txt。在文件 A.txt 中,第一个文件具有 5 位数字序列,在 B.txt 文件中给出整数。如果文件 A.txt 的前 5 位与第二个文件 B.txt 不匹配,则需要在单独的文件中打印这些数字。即 B.txt 中的数字必须在另一个文件中打印。

一个.txt

81270,UEDP35
81274,UEDP35
87562,UEDP35
89537,UEDP35
90050,UEDP35
99358,UEDP35
99369,UEDP35
99560,UEDP35
99561,UEDP35

B.txt

8127047667
8756209276
9956176149
8127463873
8953713146
9935805068
9005080751
9956088702
9936916718
4

1 回答 1

2
use warnings;
use strict;
open AIN, "<A.TXT" or die("A.TXT");
open BIN, "<B.TXT" or die("B.TXT");
my %seen;
while (<AIN>) { 
  my $v = (split(/,/))[0]; 
  $seen{$v}++; 
}
while (<BIN>) { 
  my $v=(split)[0]; 
  print "$v\n" if not $seen{substr($v, 0, 5)}; 
}
close AIN;
close BIN;
于 2012-07-25T14:20:52.847 回答