Perl 프로그램을 작성하고 싶습니다. 첫 번째 입력 파일은 2 열의 텍스트입니다. 첫 번째 열은 레이블이고 두 번째 열은 검색 문자열입니다. 두 번째 입력 파일에는 두 개의 열도 있습니다. 첫 번째 열은 레이블이고 두 번째 열은 검색 할 텍스트입니다. 예를 들어 두 번째 열에 따르면 John (file1)은 John보다 file2의 Johni와 더 유사합니다. 출력Perl에서 부분 일치하는 두 파일 찾기
Jami EWWQQQQQQQERRRTTTTTTTTTT Jam WWQQQQQQQERRRTTTTTT
Johni AAAAABBBCCCDEEEEEEHHHHHH John AABBBCCCDEE
Jami EWWQQQQQQQERRRTTTTTTTTTT
Johni AAAAABBBCCCDEEEEEEHHHHHH
Mark WWWCCVVVVVVFFFFFFFTTTTTT
ROB ##@@@########VVVVVVVVVVV
John WWADFRWSSSSSSDDDDDqqqqqq
파일 2
John AABBBCCCDEE
Jam WWQQQQQQQERRRTTTTTT
파일 1
나는 다음 코드를 시도했지만 내가 원하는 방식으로 작동하지 않습니다.#!/user/bin/perl
use warnings;
use strict;
my ($infile1) = $ARGV[0];
my ($infile2) = $ARGV[1];
open(my $fh1, "<$infile1");
while(my $file1 = <$fh1>){
my @file1 = split ("\t| ", $file1);
my $name_file1 = $file1[0];
my $ID_file1 = $file1[1];
my @matchline_file2 = `cat $infile2 | grep $name_file1`;
for my $ID_file1 (@file1){
if (grep my $ID_file2 eq $ID_file1, @matchline_file2){
print "found\n";}else{print "not_found\n";}}}
"가장 일치하는 항목"을 선택하려면 다소 복잡한 문자열 비교 알고리즘을 사용하는 것처럼 들립니다. – TLP
@TLP 두 번째 열 – EpiMan
에 따라 가장 일치하는 것을 의미했습니다. 따라서 각 경우에 파일 1의 줄은 file2의 줄의 하위 집합입니까? – Jeef