・ 2006年4月 ・ |
●
(06/04/24)
|
●
(06/04/17)
|
●
(06/04/10)
|
●
(06/04/03)
|
・ 2006年3月 ・ |
●
(06/03/27)
|
●
(06/03/20)
|
●
(06/03/13)
|
●
(06/03/06)
|
・ 2006年2月 ・ |
●
(06/02/27)
|
●
(06/02/20)
|
●
(06/02/13)
|
●
(06/02/06)
|
・ 2006年1月 ・ |
●
(06/01/30)
|
●
(06/01/23)
|
●
(06/01/16)
|
・ 2005年12月 ・ |
●
(05/12/19)
|
●
(05/12/12)
|
●
(05/12/05)
|
・ 2005年11月 ・ |
●
(05/11/28)
|
●
(05/11/21)
|
●
(05/11/14)
|
●
(05/11/07)
|
・ 2005年10月 ・ |
●
(05/10/31)
|
●
(05/10/24)
|
●
(05/10/17)
|
●
(05/10/03)
|
・ 2005年9月 ・ |
●
(05/09/26)
|
●
(05/09/12)
|
●
(05/09/05)
|
・ 2005年8月 ・ |
●
(05/08/29)
|
●
(05/08/22)
|
●
(05/08/08)
|
●
(05/08/01)
|
・ 2005年7月 ・ |
●
(05/07/25)
|
●
(05/07/11)
|
●
(05/07/04)
|
・ 2005年6月 ・ |
●
(05/06/27)
|
●
(05/06/20)
|
●
(05/06/13)
|
●
(05/06/06)
|
・ 2005年5月 ・ |
●
(05/05/30)
|
●
(05/05/23)
|
●
(05/05/16)
|
●
(05/05/09)
|
・ 2005年4月 ・ |
●
(05/04/25)
|
●
(05/04/18)
|
●
(05/04/11)
|
●
(05/04/04)
|
・ 2005年3月 ・ |
●
(05/03/28)
|
●
(05/03/14)
|
●
(05/03/07)
|
・ 2005年2月 ・ |
●
(05/02/28)
|
●
(05/02/21)
|
●
(05/02/14)
|
●
(05/02/07)
|
・ 2005年1月 ・ |
●
(05/01/31)
|
●
(05/01/24)
|
●
(05/01/17)
|
・ 2004年12月 ・ |
●
(04/12/20)
|
●
(04/12/13)
|
●
(04/12/06)
|
・ 2004年11月 ・ |
●
(04/11/29)
|
●
(04/11/22)
|
●
(04/11/15)
|
●
(04/11/08)
|
●
(04/11/01)
|
・ 2004年10月 ・ |
●
(04/10/25)
|
●
(04/10/18)
|
●
(04/10/04)
|
・ 2004年9月 ・ |
●
(04/09/27)
|
●
(04/09/13)
|
●
(04/09/06)
|
・ 2004年8月 ・ |
●
(04/08/30)
|
●
(04/08/23)
|
●
(04/08/09)
|
●
(04/08/02)
|
・ 2004年7月 ・ |
●
(04/07/26)
|
●
(04/07/12)
|
●
(04/07/05)
|
・ 2004年6月 ・ |
●
(04/06/28)
|
●
(04/06/21)
|
●
(04/06/14)
|
●
(04/06/07)
|
|
|
【第103回】
GREPとアンケート調査
(05/03/14)
窓の杜高校、超パソコン部の部室。
あらあら、めも理ちゃん。今日は部室でディスプレイとにらめっこをしています。
一体、何をしようとしているのでしょうか?
日記
|
うーん、どうすればいいのかな。
|
|
どうしたんですか、めも理ちゃん。何かお悩みですか?
|
|
それがね、昔パソコンで書いた日記に、自分の名前を“めもり”“めも理”と2とおりの表記で書いていたの。これを全部“めも理”に書き替えたいのよ。
でも、“めもり”と書いたのがどのファイルの、どの部分だったか、全部探すのが大変だなと思って。何かいい方法はない?
|
|
それなら、アプリケーションの“GREP(グレップ)”機能で探せばいいですよ。
|
|
グレップって何?
|
|
そうですね、まあアンケート調査のようなものですよ。
|
|
ふーん、よく分からないけど、楽になることだったら熱心に聞くわよ。
|
GREP
|
めも理と窓太の4コマまんが 「GREPとアンケート調査」 |
|
さて、めも理ちゃん。例えばクラスのなかでパソコンをもっている人を探したい場合、教室の前の教壇に立ち、「パソコンをもっている人はいますか?」と聞けば見つけられますよね。
|
|
そうね。
|
|
それでは全校生徒のなかから、パソコンをもっている人を探したい場合はどうしますか?
|
|
うーん、全クラスを回って聞く……。それじゃあ、面倒だわ。うーん、どうすればいいのかしら?
|
|
アンケートを実施すれば、どのクラスの誰がパソコンをもっているのかを知ることができますよ。
|
|
そうそう、私もそう思ったの。
|
|
このアンケート調査と同じようなことを行うのが、GREPという機能なのです。
このアンケートの例をGREPに当てはめると、1つのクラスが1つのテキストファイル、1人の生徒がファイル中の1行の文章ということになるのです。
|
|
具体的には、どんな感じなの?
|
|
最初の例で、教壇で『パソコンをもっている人がいるか?』と聞いたのは、“複数行書かれた1つのファイルのなかから、特定の語句がある行を検索する”のと同じことだと言えます。
そして次の例で、『全校生徒にアンケートを実施した』のは、“たくさんのファイルの全部の行を見て、特定の語句がその行に含まれているかどうかをまとめて検索した”のと同じだと言えます。
|
|
各クラスからアンケートで生徒1人1人を抽出するのと同じように、テキストファイルから条件で1行1行を抽出するというわけね。
|
|
そうです。
こういった、複数のファイルから、特定の条件に一致する行をまとめて検索する方法をGREPと呼ぶのです。
GREPなら、特定のフォルダと検索条件を指定すれば、そのフォルダ内のテキストファイル全てを検索条件どおりに検索して、一致したファイル名とその該当行をリストアップすることができます。さらに、ファイル名に対しても検索条件を指定して、複数ファイルから該当行を検索することもできます。
いちいち、ファイルを1つずつ開いて検索する必要はありません。また、Windowsの検索のように、ファイル名だけ教えてくれるのではなく、その条件に一致した行まで教えてくれますので大変便利です。どうです、気に入りましたか?
|
|
まさに、今回の私に最適な検索方法ね。
|
|
また、GREP機能がついているアプリケーションには、GREPで検索したファイルの特定の行へと簡単に移動できる、タグジャンプと呼ばれる機能がついていることが多いです。
さらにアプリケーションによっては、GREPで行を抜き出したあと、検索条件として入力した文字列を一括して置換する機能をもっていることもあります。
今回のめも理ちゃんのように、たくさんのファイルに書かれた特定の文字列を一括して置換したい場合には、こういった機能は、非常に便利に使えますよ。
|
|
それだわ! これで目的を達成できるわ!
|
|
それじゃあ最後に、GREPという用語の意味について説明しておきますね。
GREPは、“Global Regular Expression Print”の略です。日本語に訳すと、「広い範囲での正規表現の出力」という意味になります。
「正規表現」というのは難しい言葉なので、そのうち教えるとして、もっと平易に言えば「たくさんのファイルを読み込んで適宜判断して、一定のルールにしたがう行だけを出力したもの」という意味です。
テキストを扱うアプリケーションにはよくついている機能なので、覚えておくとよいですよ。
|
よくある間違い
|
めも理ちゃん。うまくいきましたか。
|
|
うまく行ったわ。ついでにいろいろと検索していて、新たな発見もあったわ。
|
|
へー、それはどんな発見なのですか?
|
|
めも理の代わりに、“ぬも理”と書いてしまっているところもあったのよ。結構こういうところって、みんな間違うわよね。
|
|
……めも理ちゃんぐらいしか間違いませんよ。
|
今回出てきた用語の解説
【GREP】 複数のファイルのなかから、検索条件に合うファイルとその行をリストアップする機能。
(クロノス・クラウン:柳井 政和)
|
|
|