は、誰もが下記の問題にはPerlスクリプトで私を助けることができます:たPerl:フォルダ内のファイルの一覧からキーワードの無限リストを検索する方法
FILE1.TXTが - >キーワードで検索する
Hello_
World!
+Bye
Temp-
File2(任意の拡張子の可能性があります)検索対象のキーワード、File3、File4 ....
File2のFile1からすべてのキーワードを検索したい場合はキーワードを印刷しますこの特定のキーワードが見つかったファイル番号と行番号とともに検索されます。
これらのキーワードやファイルを不定期にする必要はありません。追加したり変更したりできます。
open(MYINPUTFILE, "<expressions.txt");
# open for input
my(@lines) = <MYINPUTFILE>;
#print @lines;
my @files = grep (-f ,<*main_log>,<*Project>);
$n = 0;
$l = 0;
#foreach my$file (@files) {
foreach my $line (@lines) {
my @f = grep /$line/,@files;
print "@f\n";
}
#}
}
問題 - 私は上記のコードを実行しようとしましたが、コマンドプロンプトに何も印刷されません。下のコメント欄での質問について
use strict; # always use these
use warnings;
open(my $kw, '<', 'expressions.txt') or die $!;
my @keywords = <$kw>;
chomp(@keywords); # remove newlines at the end of keywords
# get list of files in current directory
my @files = grep { -f } (<*main_log>,<*Project>);
# loop over each file to search keywords in
foreach my $file (@files) {
open(my $fh, '<', $file) or die $!;
my @content = <$fh>;
close($fh);
my $l = 0;
foreach my $kw (@keywords) {
my $search = quotemeta($kw); # otherwise keyword is used as regex, not literally
foreach (@content) { # go through every line for this keyword
$l++;
printf 'Found keyword %s in file %s, line %d:%s'.$/, $kw, $file, $l, $_
if /$search/;
}
}
}
::私は、Windows 7
ようこそ。何を試しましたか? – Zaid
私は以下のコードを試しましたが、それは私に欲しい出力を与えません。 – rocky
#open(MYINPUTFILE、 "; #print @lines; #my @files = grep(-f、<*main_log>,); #$ n = 0; #$ l = 0; ##foreach my $ file(@files){ #foreach my $ line(@lines) #{ #my @f = grep/$ line /、@ files; #print "@ f \ n"; #}今後の参考のために の##} #} –
rocky