« テキスト処理の道具達(2):秀丸でGrep | トップページ | テキスト処理の道具達(4):秀丸の「grepして置換」を使ってみる »

テキスト処理の道具達(3):Grep結果から元文書にジャンプ

前回の記事で、秀丸エディタのGrep機能を使って、コメント投稿者名でコメントを抜き出してみました。もう少し条件式を工夫すると、より正確に抜き出せるようになります。

Livedoorのブログでは、コメント投稿者の載っている行はHTML中で以下のように記述されているようです(分かりやすさのためにタブ記号を<tab>で置き換えました)。
<tab><tab><div class="comments-post">Posted by 月影兵庫
at 2008年08月24日 09:20</div>

この上の行にマッチする正規表現は以下のように書けます。
^\t\t<div class="comments-post">Posted by 月影兵庫$

ここで、^は行頭を、\tはタブ記号を、$は行末を表します。

したがって、『日本よ何処へ』のブログから取得したHTMLファイル群が
d:\work\archives
にあるとすると、メニューから[検索]-[grepの実行]を選んで以下のように指定すれば「月影兵庫」がコメント投稿者である行を抜き出せます。

検索する文字列(S): ^\t\t<div class="comments-post">Posted by 月影兵庫$
検索するファイル(N): *.html
検索するフォルダ(D): d:\work\archives
正規表現(R)にチェック

結果は以下のように表示されます。
51866628.html(650):         <div class="comments-post">Posted by <a class="aposted" href="mailto:stargaze730z@hotmail.com">月影兵庫</a>
51866628.html(665):         <div class="comments-post">Posted by 月影兵庫
51893563.html(257):         <div class="comments-post">Posted by 月影兵庫
・・・

この結果画面で、例えば、一行目に秀丸エディタのカーソル(|で示される文字挿入点)を置いてF10キーを押すと、51866628.htmlというファイルが秀丸エディタの別画面で開き、650行目が表示されます。
これは、標準でF10キーに割り当てられている[その他]-[タグジャンプ]の機能です。行頭にある「51866628.html(650): 」がジャンプ先と解釈されています。

つまり、Grep検索するだけで、オリジナルへのジャンプ機能付きの目次が出来上がるという訳です。

この結果を例えば「mokuji.txt」というファイルに保存してみましょう。
そうすると、先ほどのタグジャンプ機能が使えなくなります。HTMLファイルの所在が分からなくなってしまうようです。そこで、ファイルに保存した後でも目次として使えるように、行を加工してみます。
51866628.html(650):

d:\work\archives\51866628.html(650):
に置き換えるのです。

これは、mokuji.txtを開いた状態で、[検索]-[置換]の機能を使います。

検索(S): ^
置換(E): d:\\work\\archives\\
正規表現(R)にチェック

ここで、\\は、正規表現の中で\という文字を表します。
この結果、mokuji.txtは以下のように置換されました。これでタグジャンプ機能も使えるようになります。

d:\work\archives\51866628.html(650):         <div class="comments-post">Posted by <a class="aposted" href="mailto:stargaze730z@hotmail.com">月影兵庫</a>
d:\work\archives\51866628.html(665):         <div class="comments-post">Posted by 月影兵庫
d:\work\archives\51893563.html(257):         <div class="comments-post">Posted by 月影兵庫
・・・

|

« テキスト処理の道具達(2):秀丸でGrep | トップページ | テキスト処理の道具達(4):秀丸の「grepして置換」を使ってみる »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1109195/25150971

この記事へのトラックバック一覧です: テキスト処理の道具達(3):Grep結果から元文書にジャンプ:

« テキスト処理の道具達(2):秀丸でGrep | トップページ | テキスト処理の道具達(4):秀丸の「grepして置換」を使ってみる »