Ed
出典: フリー百科事典『ウィキペディア(Wikipedia)』
edは、UNIXオペレーティングシステムの本来の標準テキストエディタである。オリジナルの作者はケン・トンプソンで、世界初の正規表現の実装のひとつでもある。それ以前には正規表現は数学の論文に出ていただけで、それをケン・トンプソンが読んだのであった。ed に影響を与えたエディタとして、ケン・トンプソンの出身校であるカリフォルニア大学バークレー校の QED がある。ed はその後のex、さらにはそこから派生したviに影響を及ぼした。非対話的なUNIXコマンド grep と sed は ed に影響されており、さらにその影響はプログラミング言語 AWK、さらにはある意味で Perl にも影響を与えている。
目次 |
[編集] 概要
その有名な簡潔さゆえ、ed は結果を表示するということがほとんどない。例えば、ed がエラー検出時に生成するメッセージやセーブせずに終了してよいか確認するときに表示するのは単に "?" である。現在のファイル名や行番号も表示しないし、要求されない限りテキストに変更を加えた結果すら表示しない。このような簡潔さは当時のUNIXにとっては適切であった。というのも、コンソールはテレタイプ端末だったし、モデムは低速で、ハードディスクやメモリは高価だったからである。時代と共に価値観も変わり、より対話的なエディタが標準となっていった。
最近では ed を対話的に使用することは滅多に無いが、シェルスクリプトで使われることはある。対話的使用に関しては、1980年代に sam、vi、Emacs に取って代わられた。ed は事実上全てのバージョンの UNIX と Linux に装備されており、様々なバージョンの UNIX で作業する人にとっては便利である。問題が発生したとき、ed は使用可能な唯一のエディタである場合もある。そのような場合に限って ed は対話的に使用される。
ed のコマンド群は他のラインエディタで模倣されている。例えば初期のMS-DOSのEDLINは似たような文法を採用しているし、多くのMUD(LPMudなど)のテキストエディタも ed 風の文法を採用している。しかし、これらのエディタは ed よりも一般に機能が限定されている。
[編集] 使用例
以下に ed を使用した例を示す。
a ed is the standard Unix text editor. This is line number two. . 2i . 1,$l ed is the standard Unix text editor.$ $ This is line number two.$ 3s/two/three/ 1,$l ed is the standard Unix text editor.$ $ This is line number three.$ w text 65 q
以上の結果として作成されるテキストファイルの内容は次の通りである。
ed is the standard Unix text editor. This is line number three.
空ファイルの状態で開始し、a コマンド(ed のコマンドは全て1文字)でテキストの追加(append)を行う。これにより ed は入力状態(input mode)となり、その後の入力文字列をファイルに追加していき、1つのドットだけからなる行を入力することで終了となる。この例ではドットで入力を終了するまでに2行のテキストが入力された。2i コマンドも入力状態に移行するコマンドであり、2行目の前にテキストを挿入する(この例では空行を入力)。コマンドには数値を前につけることができ、操作するテキストの行番号を指定する。
1,$l の l はリスト(List)コマンドである。このコマンドは範囲指定が前に付けられており、二つの行番号をカンマで区切って指定する($ は最終行を意味する)。このコマンドを入力するとこれまでの入力内容が全て表示される。各行はドルマークで終わっており、各行末に空白が存在しても即座にわかるようになっている。
3行目の間違いは、置換(substitution)コマンド 3s/two/three/ で訂正できる。ここで 3 は訂正する行を示し、コマンドの後には置換元の文字列と置換先の文字列を指定する。再度全体を表示するために 1,$l を使用すると、内容が修正されている。
w text はバッファの内容を "text" というファイルに書き込み、書き込んだ文字数を示す 65 という表示を出力する。q は ed の使用を終了する。
[編集] ビル・ジョイと vi と ed
エディタ戦争において、Emacs 信奉者は「ビル・ジョイすら、もう vi を使っていない」と言っていた。
1985年のインタビューにおいて、ビル・ジョイは、サン・マイクロシステムズ内では初期のDTPソフト Interleaf を使い、サン以外の場所では古い ed を使っていたと述べている。vi はほとんどどこにでもあったが、それらが彼の期待通りに動くと思うほど vi の派生品を信頼していなかった。しかし、ed は修正が加えられたことはなく、期待通りの動作をすることが保証されていたのである。