• ベストアンサー

改行なしテキストからの任意文字列の抽出方法

複数(何万件レベル)の.htmlファイルから、<img>タグの書かれた箇所、つまり <img src=".+"> を含む箇所が何箇所あって、どういう画像の参照があるのかを抽出したいのですが、困ったことにその.htmlファイルには改行が一切ありません。 今は秀丸のgrepを使用して試行錯誤しているのですが、 <img src=".+"> を含むファイル名とその行を表示しても途中で文字列が切れてしまうので、grepの結果に現れるのはせいぜい数個となり、正確に何箇所あるのか、抽出できずに困っています。 何かよい方法はないでしょうか? みなさまのご回答をお待ちしております。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

LC575さん、こんばんは。 実行されている環境は Windows でよろしいでしょうか? また、結果として、各ファイルに該当する文字列が何箇所あるかが わかれば良いのでしょうか? Windows XP の環境で、コマンドプロンプトを開き、下記のコマンド を実行すると、該当の文字列を含むファイル名、行番号、文字列が 表示されます。 C:\>cd tmp C:\tmp> dir 2006/10/14 01:30 <DIR> . 2006/10/14 01:30 <DIR> .. 2006/10/14 01:30 64 test01.html 2006/10/14 01:30 28 test02.html 2006/10/14 01:30 33 test03.html 2006/10/14 01:30 28 test04.html C:\tmp> findstr /N "<img src=" *.html test01.html:4:<img src="./images/1.gif"> test01.html:6:<img src="./images/2.gif"> test02.html:1:<img src="./images/1.gif"> test04.html:1:<img src="./images/1.gif"> findstr コマンドのオプションを確認したいのであれば、以下の コマンドを入力して下さい。 C:\tmp> findstr -? 以上です。

LC575
質問者

お礼

回答ありがとうございました。 早速試してみたところ、うまくいきそうな予感があります。 ただいま、本番として試していますが、5分や10分そこらで 終わる様子もなさそうなので、結果はまたご報告させていただきます。

LC575
質問者

補足

結果報告が遅くなりました。 一晩たっても処理が終わらず困っていましたが、パラメータの指定を間違えていたことが発覚。 あらためて行ったところ、15分ほどで欲しかった情報をテキストファイルに落とすことができました。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

Perl とか(正規表現とかの)テキスト処理ができるプログラムを使う

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.2

先に <img の前にというか、タグの前後に改行を挿入する作業をしてみては? 論理改行されるため検索できないのでしょうか? 秀丸は使ったことが無いですが、< を 改行+< や > を >+改行 に置換できませんか。できれば、他の用途に使う場合も楽なのではないかと思います。

LC575
質問者

お礼

回答ありがとうございました。 「改行がない」ということで困っていたので、 改行を入れてしまうのが正解なのかもしれません。 ファイル数が多いので、それだけに処理の時間をとられるのを 面倒がっているのですが、最終的にはそれしかないかと思います。

  • jprr
  • ベストアンサー率51% (108/210)
回答No.1

ctrl+Fもしくは編集→検索で、<img srcを検索。

LC575
質問者

補足

回答ありがとうございました。 おっしゃるとおり、どこに含まれているか探すだけであれば、 ctrl+F すればよいのですが、なにぶん、ファイル数が膨大なのと あとは、結果をリスト化したいという要望もあって、困っているんです。

関連するQ&A

専門家に質問してみよう