サクラエディタの便利な機能(grep機能)
googleという単語は動詞にもなるらしい。
もちろん企業名であるのだが、昨今では日本語でも英語でも動詞として通用する。
いわずと知れた「インターネット検索を行う」という意味だ。
"Just google it yourself!"(ちょっと自分でググれよ!)といった使い方で概ね伝わる。
当のGoogle社は自社名を動詞として用いて欲しくないとのこと。
Google社の野望は果てしない。
「インターネット検索を行う」ことはGoogle社の業務のほんの一部である。
たかだか「インターネット検索を行う」ことだけに社名が使われることを許さない。
故に辞書にgoogleという単語を動詞として載せることを許可しない。
だからGoogle翻訳で上記英文は(それだけでgoogle!)などというお茶目な日本語に翻訳される。
言葉は一私企業がコントロールできるものではないと思う。
しかし社名を大切にする志の高さは尊敬できる。
ちなみに同様の経緯を持つxeroxは動詞として辞書に載っている。
私はgrepをdripやfilterみたいな意味の英単語であると思っていた。
意外なことに私の持っているジーニアス英和大辞典にもOXFORD現代英英辞典にもgrepという単語は載っていない。
発音しやすい四文字の英単語が今まで英語として意味が与えられていなかかったというのは少し驚きである。
ウィキペディアで調べると、UNIXのedコマンドのg/re/pというオプション指定が由来であるという。
由来はなんであれ現在ではgrepはディレクトリ内の複数ファイルから文字列の検索してリストする機能である。
ソフトウェアエンジニアの間ではgrepは動詞として通用する。
"Really? I'll grep it to be sure."(ホントかよ? グレップって確かめるぞ)で伝わるはずだ。
動詞としてのGoogleとGrepは似ている。
違うのはリスト化する検索対象がインターネットURLなのかディレクトリ内のファイルであるかだ。
grep機能はソフトウェアエンジニアであるのならば、誰しもその恩恵に預かっている。
今やこの機能なしに業務を遂行することは苦痛だと思っている同業者も多いだろう。
多数のプログラムファイル中から特定の関数や変数がどこから使われているかを調べる時に効力を発揮する。
もしくは多数のログからエラーやワーニングがどこで発生しているのかいないのかを調べるのにも使われる。
サクラエディッタを始め、少し高機能なテキストエディタにはgrep機能がある。
grepは検索機能と似ている。
任意の文字列や正規表現式を指定して検索することは同じだ。
grep機能と単なる検索機能は何が違うのか?
grepは検索にマッチした行を別画面にタグ付きでリストする。
つまり検索結果のリストを作り、そのリストを用いて該当行にタグジャンプできる。
タグはディレクトリパス付きのファイル名と行番号、カラム位置を付けたものだ。
少し高機能なテキストエディタではこのタグリストから目的のファイルを開き、該当位置にジャンプすることができる。
いわゆるタグジャンプという機能だ。
当然サクラエディタにもタグジャンプ機能がある。
grep機能は一つのファイルではなくディレクトリ内のファイル全てに対して実行される。
更に必要ならば、サブディレクトリを再帰的に浚う。
私はこの小説をテキストエディッタで執筆するに当たり、章見出しを「■」ではじめ、各話の見出しを「●」としている。
「Ctrl+G」を押下し、「Grep条件入力」ウインドウを開く。
条件に「^■|^●」と入力、「ファイル(T)」に「*.txt」を入力。
「フォルダ(O)」に小説のテキストファイルがあるディレクトリ、例えば「C:\repo\mynovel\tools」を入力。
「正規表現(E)」にチェックを入れ、「検索(F)」を実行する。
「【Grep】^■|^●」という画面が開き以下のような表示となる。
この条件では行頭に「■」か「●」のある行にヒットする。
つまり、この原稿の見出しを検索し、リスト化する。
複数ファイルに跨る見出しが作れるわけだ。
「【Grep】^■|^●」の画面ではマウスの左クリックを行うか、「Enter」キーを押下するか、「F12」を押下するかで目的の行に飛ぶことができる。
grep機能を使えば複数のファイルに跨って任意のキーワードを俯瞰することができる。
新しく抽出した誤字誤記誤用は多分今までも繰り返している。
grep機能を使えば簡単に確かめることができる。
『。」』や「。』」も過去の原稿を含めて抽出できる。
主人公の名前でgrepすれば変な発言をしていないか分る。
主要登場人物の名前でもgrepすればより確実だ。
もうgrep機能なしに小説の執筆はできない。
grep機能は強力な校正ツールだ。
多くの諸先生方も同意して戴けるものと思う。
そこで思い出す。
そういえばサクラエディタには「Grep置換」機能があった。
複数ファイルに跨る一括置換。
さぞかし便利なんだろう。
確かに便利だ。
しかしファイル内での「一括置換」以上に危険な機能でもある。
バックアップなしでは使ってはいけない機能だ。
しかもファイル数が多くなってくるとどこが変わったのか把握できなくなる。
危険極まりない。
なので次回は差分抽出ツールを導入する。