17.3.1.1 行検索

ある出来事とそれが起こった年が並べられている年表のようなデータの中から,ある特定の年(例えば1960年)に起こった出来事だけをぬき出す処理を考えます.

次のnenpyoというファイルはある映画俳優が出演した映画の一部とその映画の公開年のデータです.

1958	"Cat on a Hot Roof"
1960	"Exodus"
1961	"The Hustler"
1963	"Hud"
1969	"Butch Cassidy and the Sundance Kid"
1973	"The Sting"
1979	"Quintet"
1980	"When Time Ran Out..."
1982	"The Verdict"
1986	"The Color of Money"
1989	"Fat Man and Little Boy"
1989	"Blaze"
filenenpyo

ファイル名を右クリックして適当な場所にダウンロードしてください.

UNIXでは"grep"というコマンドが設けられています. 1960年の分だけぬき出すには, コマンド名 grep の後に, パラメータとして検索する文字列 1960 とファイル名 nenpyo を与えます.

ターミナルを開いて, ファイルを保存したディレクトリにカレントディレクトリを変更し, 次のように入力しましょう.

promptgrep 1960 nenpyo return2 1960 "The Hustler"

のように結果が出たでしょう.

ここで注意しなけばならないのは,このコマンドが「探す」のが文字列「1960」であって, 1960年の意味がどうかはわからないことです. たとえば"5454-1960"という電話番号や"5619604"という数字かも知れません. しかしとにかくこれで, 一応の役には立つ結果が得られます.

検索を「より正確に」行なうための機能として,grepの検索パターンでは. 「行頭」や「任意の一文字」というような特別な意味をもつ文字を指定することができます.