我在代碼的這一部分上花了幾個小時,但仍然不知道如何使其工作,所以任何建議都會很棒!(Perl)在文件中搜索另一個文件的文本
我有2個文件,list1.txt和dictionary.txt。 list1.txt看起來像
rs1
rs2
rs4
rs5
而dictionary.txt看起來像
rs1 1 A G
rs2 2 C T
rs3 3 A A
rs4 4 G G
列由空格分隔 - 有四列。 我想要做的是針對list1.txt中的每個單詞,搜索dictionary.txt中的單詞,如果存在,則將dictionary.txt中的整行打印到第三個文件中。如果這個單詞在dictionary.txt中不存在,就打印出這個單詞。
所以,如果我運行下面上面列出的文件的程序,我的結果應該
rs1 1 A G
rs2 2 C T
rs4 4 G G
rs5
上述程序:
open(LIST1, '<', 'test_chr1_22.txt') or die "Could not open chr1_22.txt: $!";
open(OUTPUT, '>', 'test_chr1_22_all_info.txt');
foreach my $line1 (<LIST1>)
{
foreach my $line (@DICT)
{
if ($line =~ m/"$line1"/)
{
print OUTPUT"$line\n";
}
}
}
這是我的代碼現在。我知道它沒有我的第二個條件,如果單詞在字典中不存在,那麼就打印這個單詞。但是,我甚至無法解決第一部分,即如果單詞在字典中,那麼就打印該行。我從這個空白的文本文件中得到什麼。任何人都知道發生了什麼事?
把使用嚴格;在代碼的頂部。你似乎沒有閱讀過@DICT,就像你已經閱讀過LIST1 – Himanshu
我忘了在帖子中包含我的部分代碼,所以我確實擁有它。謝謝你的提醒! – Peter