Hatena Blog Tags

ed

(コンピュータ)
いーでぃー

UNIX に最初期から存在するラインエディタ。操作性があまりにも悪いため、現在使う人はおらず、単に歴史的興味から残されている、と見る向きが多い。
だが、端末の進歩によって多くの人が ed は不便だと感じるようになっても、ed の用途がすぐになくなったわけではなかったと考えられる。実際には、AWK や Perl などにより、ファイルの内容を自由に更新するプログラムを簡単に書けるようになったことと、Oracle や PostgreSQL などのリレーショナルデータベースの普及によって使われなくなったとみるべきだろう。昔は ed による非対話的な編集が、シェルスクリプトなどでファイルの内容を生かしたまま情報を追加・削除・更新するワザとして用いられていたのである。
DOS にも EDLIN というラインエディタがあり、Windows XP/2003 Server においても非サポート扱いながら残っている。ただしこれは ed とは似て非なるものであり、行の連結ができない他、正規表現による検索・置換ができないのは致命的である。残っている理由は昔のバッチファイルでの非対話的使用で使うためだろう(CONFIG.SYS の内容をバッチファイルから書き換える、など)。
ed の設計についてはカーニハン、プローガーによる『ソフトウェア作法』に詳しい。ed のコマンド体系の一部は現在も diff、patch、rcs、cvs で、テキストファイルの差分を表現するために使われている(また、はてなダイアリーのキーワードの編集履歴にも使われている)。また、adb (デバッガ)のコマンド体系にも影響を与えた。
検索・置換コマンドの正規表現は ed → sed → AWK言語 → Perl言語、と受け継がれ、現代の常識となった。ピリオド一個で入力を終える方法は ed とは若干違う形ではあるが SMTP などのネットワークプロトコルにも受け継がれている(なお comp.sources.unix の過去の投稿に、ed のコマンドをまさにネットワークプロトコルとして使用した rvi なるツールがある)。
専門家向けに:SQL が「Codd の関係代数」を実現するプロトコルであるように、ed のコマンドは「行の順序付き集合上の代数」を実現するプロトコルとみることができる。エディタ、データベース、およびネットワークプロトコルの設計を志す者は一度は ed を使い、『ソフトウェア作法』を読むべきだろう。

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。

関連ブログ