0

私は perl を初めて使用し、現在この問題で立ち往生しています。

  1. ディレクトリに複数のファイルがあります
  2. それらの名前を確認し、ファイル名が特定のキーワード (ファイル名全体ではなく) と一致するかどうかを確認したいと思います。結論として、すべて特定のキーワードを持つ特定のファイルを取得して、それらを処理したいと考えています。

私は何かをしようとしていた

grep -rl "keyword" /.; 
#where does the filenames get stored? let's say in $_?
#foreach valid file, do something

私が見つけたいくつかのウェブサイトからですが、うまくいかないようですか?助けてください、ありがとう!!

4

2 に答える 2

2

どうですか

 ls *keyword*

perl内でこれを行おうとすると

 @files = glob("*keyword*");
 for $file (@files)
 {
   print "$file\n";
 }

grepin perl はコア関数ですが、正規表現とは関係がないことに注意してください。これは SQL に似ていますwhere。各要素に関数(正規表現である場合とそうでない場合があります)を適用することにより、配列をサブ配列にフィルター処理します。

グロブ式が十分でない場合は、次のことができます

 @files = grep /(fun[kK]y_)keyword?/ glob("*");
于 2013-09-10T16:18:39.893 に答える
1
perl -E 'say for <*keyword*>'
于 2013-09-10T16:22:09.837 に答える