ed

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ed(イーディー)は、UNIXオペレーティングシステム上の標準的なテキストエディタである。オリジナルの作者はケン・トンプソンで、世界初の正規表現の実装のひとつでもある(それ以前には正規表現は数学の論文に出ていただけであった)。edはケン・トンプソンの出身校であるカリフォルニア大学バークレー校QEDから影響を受け、その後exおよびそこから派生したviに影響を及ぼした。UNIXコマンドgrepsedはedのよく使われる使い方に影響されており(例えば使用例の置換コマンドはsedの使用法にそっくりである)、これらの影響はプログラミング言語AWKの中にもよく見て取れる。

概要[編集]

edはその簡潔さで有名で、結果を表示するということがほとんどない。例えば、edがエラー検出時やセーブせずに終了してよいか確認するときに生成するメッセージは単に"?"である。現在のファイル名や行番号は表示されず、要求されない限りテキストに変更を加えた結果すら表示しない。このような簡潔さは初期のUNIXにとっては適切であった。というのも、コンソールはテレタイプ端末だったし、モデムは低速で、ハードディスクメモリは高価だったからである。技術進歩によってこれらの制約がなくなるにつれて、より視覚的なエディタが標準となっていった。

最近ではedを対話的に使用することは滅多に無いが、シェルスクリプトで使われることはある。対話的使用に関しては、1980年代にsam、viEmacsに取って代わられた。edは事実上全てのバージョンのUNIXとLinuxに装備されており、様々なバージョンのUNIXで作業する人にとっては便利である。問題が発生したとき、edは使用可能な唯一のエディタである場合もある。そのような場合に限ってedは対話的に使用される。

edのコマンド群は他のラインエディタで模倣されている。例えば初期のMS-DOSEDLINは似たような文法を採用しているし、多くのMUDLPMudなど)のテキストエディタもed風の文法を採用している。しかし、これらのエディタはedよりも一般に機能が限定されている。

2008年8月23日GNUの開発によるedがバージョン1.0を迎えた[1]

使用例[編集]

以下に 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を使っていない」と言った。1984年のインタビュー[2]において、ビル・ジョイはこのことについて説明している。そこで彼はサン・マイクロシステムズ内では初期のDTPソフトInterleafを使い、サン以外の場所を訪れたときには古いedを使っていたと述べている。viはほとんどどこにでもあったが、それら(独自に修正が加えられた)ローカルバージョンのviは彼にとって期待通りに動くと信頼できなかったのである。一方でedは修正が加えられたことがないので思った通り動作することが期待できた。そこで彼は(しぶしぶながら)viを使わずにedを使ったというわけである。

脚注・出典[編集]

  1. ^ 15年の熟成を経て「GNU ed」がv1.0に” (2008年8月23日). 2008年8月25日閲覧。
  2. ^ Interview with Bill Joy” (1984年8月). 2013年3月22日閲覧。

参考文献[編集]

関連項目[編集]

外部リンク[編集]