next up previous
Next: この文書について... Up: 情報処理II 第7回 情報の電子化 (3) Previous: B. 日本語文書を電子化する上での問題点について

C. 検索あれこれ

WWW の検索エンジンはお馴染であろうが (と言うよりも説明済みなので略する)、 以下、利用しているコンピューター・システム内での「検索」について。

編集中の文書内での文字列検索
テキスト・エディターには編集中の文書の中の文字列を検索する機能がある。 emacs の場合、
C-s (incremental search forward) 文字列の検索 (ファイルの末尾に向かって)
  次の候補へ行くには C-s を打つ。
  検索をやめるには ESC
C-r (incremental search backward) 文字列の検索 (ファイルの先頭に向かって)
  C-s とは検索の方向が反対
C-s C-k 日本語の検索
C-r C-k 日本語の検索
M-x search-forward-regexp 正規表現を用いた検索
M-x search-backward-regexp 正規表現を用いた検索
大抵はそれと同時に「文字列の置換」という機能もある。
M-%
M-x replace-string
M-x replace-regexp
☆脱線になるが、時々「指定した行番号の行に移動するには?」と尋ねられる。 これには M-x goto-line とすれば良い。 ちなみに私は .emacs に
	(global-set-key "\C-cg" 'goto-line)

と書いてあるので、C-c g とするだけでこの機能が呼び出せる。
(複数個の) テキスト・ファイルの中の文字列検索
grep が使える。本文を参照のこと。基本的な使い方は
grep 正規表現 ファイル名リスト
このコマンドは非常に強力であり、是非ともマスターして利用すべきである。 しかし、日本語文書に関しては、今一なところがある。
コマンドのありかを探せ
普段使っているコマンド、名前は分かっていても本体は一体どこにある? which いうコマンドを使うと良い。
isc-xas06% which コマンド名

ただし大きなコマンドの代理人のようなコマンドであることも多く、 ご本尊を見つけるには今一段のおっかけが必要になることもある。
普段使っている netscape、その本体のサイズは? (昨年度までのセンターでの話)
isc-xas06% which netscape.v47j
/usr/meiji/X11/bin/netscape.v47j
isc-xas06% ls -l /usr/meiji/pub/bin/netscape.v47j
isc-xas06% file /usr/meiji/pub/bin/netscape.v47j
/usr/meiji/X11/bin/netscape.v47j: 実行可能 shell スクリプト
isc-xas06% less /usr/meiji/X11/bin/netscape.v47j
     → 中身を読んで本体が /usr/meiji/X11/netscape.v47j/netscape と分かる
isc-xas06% file /usr/meiji/X11/netscape.v47j/netscape
/usr/meiji/X11/netscape.v47j/netscape: ELF 32-ビット MSB 実行可能形式..
     → 確かに機械語実行ファイル
isc-xas06% ls -l /usr/meiji/X11/netscape.v47j/netscape
     さて、サイズはどの程度?
使えそうなコマンドを探せ
man -k キーワード でオンライン・マニュアルの検索ができる。
ファイルのありかを探せ
find というコマンドがある。
find パス名 -name 'コマンド名のパターン' -print
名前だけでなく、最近一週間に変更したものとか、色々な検索ができる。
find パス名 -mtime -3 -print
この3日の間に変更したファイルを表示する。
find はシステム管理者にとっては必修コマンドであるが、 普通の人にはあまり縁がないかもしれない。


next up previous
Next: この文書について... Up: 情報処理II 第7回 情報の電子化 (3) Previous: B. 日本語文書を電子化する上での問題点について
Masashi Katsurada
平成20年10月18日