0
我想比較一個文件(file1)中列(col1)的值與另一個文件(file2)中列(col1)的所有記錄。我的策略是讀取文件,對於文件中的每一行,通過製表符分隔符分割並比較兩列中的值。如果匹配,則從第二個文件的列中打印特定值並將其附加到第一個文件的最後一列,否則打印「未找到」並將其附加到第一個文件的最後一列。 我認爲我的下面的腳本是比較線條而不是線條到字段中的所有線條,並返回錯誤(使用未初始化的值$ col1 [0] ...)。 你會很感激。Perl中的字段/列比較
open (FILE1, "<", "file1") or die ("Can't open file $!");
open (FILE2, "<", "file2") or die ("Can't open file $!");
my @data1 = <FILE1>;
my @data2 = <FILE2>;
foreach my $curr_line_1 (@data1) {
my @col1 = split "\t", $curr_line_1;
}
foreach my $curr_line_2 (@data2) {
my @col2 = split "\t", $curr_line_2;
}
if ("$col1[0]" eq "$col2[0]") {
open FINAL, '>>', 'final';
push(@col1, "$col2[1]");
print FINAL "@col1\n";
}
else {
open FINAL, '>>', 'final';
push(@col1, "not found");
print FINAL "@col1\n";
}
close(FINAL);
close(FILE1);
close(FILE2);
file1
1 mary
1 tom
2 john
3 will
4 hugh
5 eddy
file2
2 unit2
3 unitA
5 base
final
1 mary not found
1 tom not found
2 john unit2
3 will unitA
4 hugh not found
5 eddy base
你的問題有點不清楚。 File1包含鍵和值的查找表。 File2包含數據行。您想要獲取File2中的每一行並在File1中查找某個列的值作爲關鍵字。如果發現你想將File1中相應的值附加到File2中的不同列;如果找不到,則希望將字符串「未找到」附加到File2中的同一列。它是否正確?如果您可以爲File1和File2提供一些示例數據以及預期輸出,那將會非常有幫助。 –
你完全正確。我會馬上提供一些示例數據! – jamie
你的'if'永遠是真的嗎? – toolic