1

.txt ファイルと参照 .csv ファイルのリストがあります。私の参照にはキーワードが含まれており、特定のキーワードが foreach ループで実行している .txt ファイル名に含まれているかどうかを確認したいと考えています。

#!/bin/perl

use strict;
use warnings;

my %keyword;
my @files = glob("*.txt");
my $i     = 0;

foreach my $file (@files) {
  my %data_hash;

  open(INFILE, "$file") or die "Can't open file \n";
  while (<INFILE>) {
    my @data = split(/\t/, $_);
    $data_hash{ $data[0] } = $data [0];
    $keyword{$file} = $file;
  }
  close INFILE;

  open(REFERENCE, "$ARGV[0]") or die "Can't open file \n";
  while (<REFERENCE>) {
    my @all = split(/\t/, $_);
    if ($keyword{ "*$all[0]" }) {   #$all[0] contains the keyword
      print $data_hash{ $all[1] };   #print $data_hash when $all[1] eq $data[0]
    }
  }
  close REFERENCE;
}

ファイル名はHello_there_keyword.txt. $data_hash に正しい値が含まれていることはわかっています。$file にキーワードが含まれている場合、$data_hash{$file} でキーワードを探していますか?

4

1 に答える 1