私はコードのこの部分に数時間を費やしましたが、それを機能させる方法がまだわからないので、どんな提案も素晴らしいでしょう!
list1.txtとdictionary.txtの2つのファイルがあります。list1.txtは次のようになります
rs1
rs2
rs4
rs5
dictionary.txtは次のようになります
rs1 1 A G
rs2 2 C T
rs3 3 A A
rs4 4 G G
列はスペースで区切られます-4つの列があります。私がやりたいのは、list1.txtの単語ごとに、dictionary.txtでその単語を検索し、存在する場合は、dictionary.txtの行全体を3番目のファイルに出力することです。その単語が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";
}
}
}
これは私が今持っているコードです。2番目の条件がないことはわかっています。つまり、単語が辞書に存在しない場合は、その単語を印刷するだけです。ただし、最初の部分を理解することすらできません。つまり、単語が辞書にある場合は、その行を印刷します。これから得られるものは空白のテキストファイルです。誰が何が起こっているのか知っていますか?