Windowsしか使ったことがない(もちろんコードを書いたことなどない)という人には聞き慣れないコマンド「grep」ですが、知っている人は知っている、大変便利な機能ですね。
grepはテキストの中から指定したワードの含まれる行を抽出できます。
秀丸エディタならば
「検索」→「grepの実行」
これをマクロで自動化したかったのだけど、すんなり行かなかった。
基本的過ぎる内容のせいか、解説しているサイトも見つからず、ちょっとだけ苦労したので記録しておく。
通常なら、やりたい作業をマクロの記録をオンにして一通りやれば、その内容が記録されるので簡単にマクロを作成できる(エクセル等でも同じですね。)
「マクロ」→「キー操作の記録開始/終了」→[マクロ化したい作業を行う]→「キー操作の記録開始/終了」
そして、「マクロ」→「キー操作の保存」で名前をつけて保存
必要に応じて、「マクロ」→「マクロ実行」→「編集」で内容を修正
しかし、マクロの記録をオンにして「検索」→「grep」をやってみても、記録されない・・・
検索してみたら、grep行うコマンドは「grep」(そりゃそうですわな)
しかし、それでやると、新しい空のウィンドウが開いて、そこからgrepを行おうとしてしまうので、何も抽出されない。
ヘルプを見てみたら、「現在の内容」からgrepをかけるには、「localgrep」というコマンドを使うようです。
例
localgrep "hogehoge", word, noregular;
上記のように書けば、「hogehoge」という単語でgrepがかけられました。
そして、引数(青字部分)は他にもたくさんあるようですが、全てはちょっと調べきれていませんが、とりあえず、「word」を最低限指定する必要があるようです。(単語の検索?)
(「regular/noregular」は正規表現を使うか使わないか)
ページのソースからOGPタグだけを抽出するマクロを書いてみた
setcompatiblemode 0x0F;
begingroupundo;
replaceallfast "¥¥n" , "" , regular, nocasesense, nohilight;
replaceallfast "<" , "¥¥n¥¥0" , regular, nocasesense, nohilight;
localgrep "og:", word, noregular;
endgroupundo 1;
※description等複数行に渡って書かれている行があると抽出できないので、改行を一度全部削除して、タグごとに("<"を区切りに)再度改行してから、「og:」でgrepをかけている
コメント