- ベストアンサー
Perlでのファイルリスト作成
Perlで、ファイルリストを作成したいのですが、あるディレクトリにあるファイル(.htm)からファイル名、フルパス、<title>タグのタイトル部分をはきだす方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか? opendir/readdirでは指定したディレクトリ内のファイルだけでなくサブディレクトリの名前も取得してくれます。 > (3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。 正規表現が得意でないなら使わずにすむ方法もあります(工夫次第です)。 たとえば取得したHTML全文をひとつの変数に格納し、<TITLE>と</TITLE>で順にsplitしてあげれば<TITLE>と</TITLE>の間だけ抜き出せます。タグの大文字小文字(<TITLE>と<title>)を考慮してあげる必要があります(正規表現の場合も同様ですね)。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
再帰的になにかするのであれば File::Find とか find.pl なども使えるかも.
- danmarino
- ベストアンサー率63% (26/41)
微妙にどのようなスクリプトを書きたいのかが伝わらないのですが… (1)ディレクトリにあるファイルのリストを作成するには opendir(DIR,"ディレクトリ"); @fnames = grep(!/^\./,readdir(DIR)); close DIR; (2)ファイルのフルバスは環境変数$ENV{'DOCUMENT_URI'}で取得 ※但し、htmlファイルから見てということになります (1)でディレクトリを指定しているのならフルパスはわかっているのでは? (3)<title>タグのタイトル部分を取得するには (1)で取得したファイルのリストを使ってファイルを一つ一つオープンし、<title>と</title>の間を読み取ってあげる
補足
danmarino さん また質問で申し訳ないですが、 指定したディレクトリのサブディレクトリもリストの対象にするにはどうしたらよいでしょうか? (3)で、<title>と</title>の間を読み取る正規表現について、ご教授願います。正規表現が得意ではないので、もしよろしければ、サンプルコードを教えていただければと思います。
お礼
早急な回答ありがとうございます。 参考にさせてもらいます。 早速、アドバイスどおりやってみたいと思います。 ありがとうございました。