コンピュータで学ぶ

秀丸の使い方 3

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

「秀丸」による検索・置換

 「秀丸」を使えば、非常に高度な検索・置換ができます。この「検索」「置換」の機能により、コンピュータで書いた膨大な文章をうまく管理することができます。

かんたんな語句検索
正規表現を使った語句検索
正規表現いろいろ
grepで複数ファイルを検索
かんたんな語句置換
正規表現による語句置換


その前に……
 ・キーボード操作にも熟達しておきましょう。キーを見ないで打てるようになれば、ストレスが激減します。
 キーボードの配列図


text以下の練習のため、nikki.txtをダウンロードしてください(マウス右クリック)。

かんたんな語句検索
 パソコンを使って日記をつけていて、いつしか大きなファイルになったとしましょう。そのファイルの中から、あなたの友だちの「山本さん」について書いた箇所を検索してみたいと思います。
・まず、日記を書いてあるテキストファイルを「秀丸」で開きます。
・メニューバーの「検索(S)」→「検索(F)」をクリックします。
・すると、ダイアローグボックスが出ます。「検索(S)」の欄に「山本さん」と入れ、「下検索(N)」を押します(下図)。

山本さん

・今表示されている位置より下にある「山本さん」の語句の箇所に、カーソルが移動します。上の箇所の「山本さん」に戻りたい場合は、「上検索(P)」を押します。

正規表現を使った語句検索
 もう少し複雑な検索をしてみましょう。あなたはいつだったか、山本さんに『芥川龍之介全集』を借りました。その時の記述を探すことにします。
 ただ、日記には『芥川龍之介全集』と書いたか、『芥川全集』と書いたか、忘れてしまいました。単に「芥川」で検索するだけでは、関係ないものも検索されそうです。
 そこで、特別の検索方法を使って、「芥川○○全集」(○○は不確かな語句)を検索します。
・「検索」のダイアローグボックスで、「検索(S)」の欄に、「芥川.*全集」と記述します(「芥川」の次に「.」(ピリオド)、「*」(アステリスク)、「全集」と入力)。
・下の「正規表現(R)」にチェックを入れます。
・「下検索(N)」を押します。これで検索できます(下図)。

芥川全集

 ここでは、半角の「.」(ピリオド)は何か1文字が来ることを表します。また、半角の「*」(アステリスク)は、その文字が0回以上繰り返されることを表します。つまり、「芥川.*全集」という記述は、「芥川」と「全集」の間に、何か文字が0個以上入っているものを検索する、という意味になります。
 この「.」「*」などは、文字を探すために正規に決めた表現ということで、「正規表現」といわれます。検索のとき、「正規表現(R)」の欄にチェックを入れるのはこのためです。

 正規表現いろいろ
 主な正規表現は、次のようなものがあります。

.

半角ピリオド。何か1文字を表します。
例)「芥川.全集」で検索すると、「芥川の全集」「芥川は全集で読んだ」などの語句が拾われます。

*

半角アステリスク。直前の文字の0回以上の繰り返し。
例)「おお*い」で検索すると、「おい」「おおい」「おおおおい」などの語句が拾われます。

+

半角プラス記号。直前の文字の1回以上の繰り返し。

[あいう]

半角大括弧。括弧内にある文字のどれか1文字を意味します。
例)「芥川[龍竜]之介」で検索すると、「芥川龍之介」および「芥川竜之介」が拾われます。「源[義頼][経朝]」で検索すると、「源義経」「源義朝」「源頼経」「源頼朝」が拾われます。

[0-9]
[a-z]
[あ-ん]

2つの文字を「-」(半角マイナス記号)で結ぶと、その2つの文字コードの間にあるすべての文字を意味します。たとえば、[0-9]とすれば「0」から「9」までの数字を、[a-z]とすれば半角アルファベットの小文字を、[あ-ん]とすればひらがなを意味します。
例)「第[1-9]回早稲田祭」で検索すると、「第1回早稲田祭」「第8回早稲田祭」などが拾われます。「第[0-9]+回早稲田祭」で検索すると、「第1回早稲田祭」「第10回早稲田祭」「第2056回早稲田祭」(あれば)などが拾われます。

[^あいう]

その文字以外の文字であることを意味します。
例)「早稲田[^大]学」で検索すると、「早稲田中学」は拾われますが、「早稲田大学」は拾われません。

^

行の先頭を意味します。
例)「^今日は」で検索すると、「今日はいい天気だ……」など、「今日は」で始まる行は拾われますが、「授業のある今日は……」など「今日は」が途中にあっても拾われません。

\n

改行を意味します。
例)「日本経済について\n」で検索すると、「日本経済について」で改行されている行は拾われますが、「日本経済についての考察を……」など、まだ後に続く場合は拾われません。


grepで複数ファイルを検索
 テキストファイル形式で日記を長年書きためた場合、その中から、たとえば、「今日の献立」の欄だけを抜き出して、あらたなデータファイルを作ることもできます。
 かりに、日記が10ファイルになったとしましょう。もし、これがワープロのファイルであれば、膨大な日記の中から「今日の献立」の欄だけを抜き出すなどという作業はほとんど不可能です。しかし、テキストファイルであれば、「秀丸」などの「grep」の機能を用いて、必要部分だけを抜き出すことができます。
 毎日記す日記に、たとえば、以下のように「〔今日の献立〕」という見出しをつけてあるとします。

献立

 この見出しを手がかりに、複数のファイルから「〔今日の献立〕」の欄を抜き出します。
・メニューバーの「検索(S)」→「grepの実行(G)」をクリックします。
・すると、ダイアローグボックスが出ます。「検索する文字列(S)」の欄に「〔今日の献立〕」と入れます。
・「検索するファイル」の欄は、対象ファイルがテキストファイルであれば「*.txt」と入れておきます。ホームページならば「*.htm」と入れます。
・「ドライブ(V)」「フォルダ(D)」の欄は、対象ファイルが入っているドライブ・フォルダを選択します。
・その他、検索したい条件によって、チェックボックスに印を入れます。
・「OK」ボタンを押します(下図)。

grepの実行

・フォルダの中に入っているすべての対象ファイルから、〔今日の献立〕と記された行が表示されます(下図)。

grepの結果

 行頭には、ファイル名と該当箇所の行数が記されています。


・民法・刑法からgrep検索をしてみましょう。
  
民法
  刑法


かんたんな語句置換
 語句の「置換」も、検索とほぼ同じ要領でできます。
 以前の埼玉県浦和市は、合併によって「さいたま市」になりました。そこで、古い住所録のうち、「埼玉県浦和市」とある住所を「埼玉県さいたま市」に変えることにします。
・まず、住所録のテキストファイルを「秀丸」で開きます。
・メニューバーの「検索(S)」→「検索(R)」をクリックします。
・すると、ダイアローグボックスが出ます。「検索(S)」の欄に「浦和市」と入れ、「置換(E)の欄に「さいたま市」と入れます。
・いちいち確認しながら置換したい場合は「下検索(N)」を、一括して置換したい場合は「全置換(A)」を押します(下図)。

さいたま市

・置換箇所が少ない場合は、ほとんど一瞬で置換されてしまいます。置換箇所が多く、置換に時間が掛かる場合は、「スピードアップ(S)」のボタンを押します。

 正規表現による語句置換
 置換のためにも、正規表現を使うことができます。
 たとえば、文章の中で、年月日を「1989年12月5日」などと書いてある部分を、すべて「1989.12.5」の形に直してみましょう。
 これは、ちょっとややこしいですが、ごく簡単に説明します。
 「1989年12月5日」の形の年月日を検索するときには、入力する文字列は、
  [12][0-9][0-9][0-9]年[0-9]+月[0-9]+日
でいいでしょう([12]や[0-9]などの意味は上の「正規表現」を参照)。これで、「1989年12月5日」「2004年3月28日」「1862年9月1日」などが、全部拾われます。
 これを置換して、「年」「月」を「.」(ピリオド)に置き換えたいわけです。このためには、事前にちょっとしかけが必要です。
 まず、検索する文字列を、あらかじめいくつかの部分に分けておきます。具体的には、「\f」という分割記号を挿入して、検索文字列を分けます。
 上の場合ならば、
  [12][0-9][0-9][0-9]\f\f[0-9]+\f\f[0-9]+\f
というふうにして、文字列を「年月日の単位の部分」と「それ以外の部分」に分けておきます。「\f」で分けられた各部分を、かりに、順に「パート0」「パート1」「パート2」……と呼んでおきます。
 これを置換して「1989.12.5」のようにするということは、要するに、パート0、2、4の部分を「.」(ピリオド)でつなぐということにほかなりません(下図)。

年月日

 これを実際に「秀丸」のダイアローグボックスに記入してみましょう。
・「置換」のダイアローグボックスで、「検索(S)」「置換(E)」の欄に、それぞれ上の検索式・置換式を記入します。
・下の「正規表現(R)」にチェックを入れます。
・いちいち確認しながら置換したい場合は「下検索(N)」を、一括して置換したい場合は「全置換(A)」を押します(下図)。

年月日

 これで、「1989年12月5日」はめでたく「1989.12.5」に置換されました。
 以上のようなことができるようになれば、大量のテキストファイルをかなり思い通りに整理することができるはずです。

(おわり)
1 2 3

「コンピュータで学ぶ」へ戻る

IIMA's HomePage

Copyright (C) IIMA Hiroaki 2012
All rights reserved.
email:

本ページの著作権・使用許諾条件・掲示責任者の表示