- 论坛徽章:
- 0
|
很简单的一个程序,见下说明。但工作只有一部分起作用了(见后面的file3输出),很奇怪。清指出毛病所在,谢谢!!
#!/usr/bin/perl
#now the file "file1" have id , and "file2" have some of id of file1 but also include some new id,
#this script is to find if there is new id in file2, if have, added and put all in file3
$FileList1 = "file1";
$FileList2 = "file2";
$FileList3 = "file3";
open (OF, $FileList1) || die "Cannot open file: $FileList1";
@data1=<OF>;
close(OF);
open (OF, $FileList2) || die "Cannot open file: $FileList2";
@data2=<OF>;
close(OF);
@data3=();
Outer:foreach $id2 (@data2) {
foreach $id1 (@data1) {
if($id2==$id1) {next Outer;}
}
push (@data3,$id2);
}
foreach $id3 (@data3){
push (@data1,$id3);
}
open (OF, ">>$FileList3") || die "Cannot open file: $FileList3";
foreach $id1 (@data1){
print OF "$id1";
}
close(OF);
File1:
1
1.1
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.2
1.3
1.4
1.48
1.5
1.6
1.7
1.8
1.9
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.1.1
1.1.2.1
1.1.2.2
1.1.2.3
2
2.1
2.3
File2:
1
1.1
1.1.1.1.1.1.1.1
1.10
1.11
1.12
1.13
1.14
1.30
1.33
1.4
2.55
1.48
1.5
1.6
1.7
1.8
1.9
1.30
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.1.1
1.1.2.3
2
2.1
2.3
File3:
1
1.1
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.2
1.3
1.4
1.48
1.5
1.6
1.7
1.8
1.9
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6
1.1.1.1
1.1.2.1
1.1.2.2
1.1.2.3
2
2.1
2.3
1.33
2.55
----------------File3, the new id in file2- 1.33 2.55 were added, but the 1.1.1.1.1.1.1.1 and 1.30 didn't!! |
|