0
我想檢查從另一個文件中獲取的服務器名稱是否存在。這個想法是,第二個文件包含多個行,每個文件都包含服務器名稱+其他信息。只匹配一次,但不多於
所以輸出的例子名稱爲「SERVER01」是
server01
server01
server01
我想有隻在輸出xls文件一次中存在的,當然這兩個文件的每個名稱。
該計劃到目前爲止是:
#!/usr/bin/perl -w
use Spreadsheet::WriteExcel;
#OPEN FILES
open(FILE, "CEP06032012.csv") or die("Unable to open CEP file");
@CEP_file = <FILE>;
close(FILE);
open(FILE, "listsystems_temp") or die("Unable to open listsystems file");
@listsystems_file = <FILE>;
close(FILE);
#XLS properties
my $workbook = Spreadsheet::WriteExcel->new('report.xls');
my $worksheet_servers = $workbook->add_worksheet();
#MAIN
my $r = 0;
foreach my $lines(@CEP_file){
my @CEP_file = split ";", $lines;
my $server = $CEP_file[8];
foreach my $lines2(@listsystems_file){
if ($lines2 =~ m/.*$server.*/i && $server ne ""){
print "$server \n";
#print "$lines2 \n";
$worksheet_servers->write($r, 0, "$server");
$r++;
}
}
}
exit();
任何想法如何改變呢?
如何刪除重複是在perlfaq頁之一。 – ikegami 2012-04-11 18:42:25
這些啤酒不完全重複,例如第二個文件包含: 'F_server01:NO - v1' 'F_server01:LZ - v2' 所以每行的部分可以是相同的,但不是所有的行... – f00sa 2012-04-11 18:58:42
你目前正在顯示正在輸出的重複數據,並且您詢問了如何防止這種情況。你在改變你的問題嗎?如果是這樣,你的新問題是什麼? – ikegami 2012-04-11 20:11:06