Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
ed, red - 行指向のテキストエディタ
書式
ed [-GVhs] [-p string] [file] red [-GVhs] [-p string] [file]
説明
ed は、行指向のテキストエディタです。本コマンドを用いることで、 テキストファイルの生成、表 示、変更その他の操作を行なうことができます。 red は制限付きの ed です。 red では、カレント ディレクトリの ファイルのみを編集でき、シェルコマンドの実行はできません。 file 引数を指定して本コマンドを起動すると、ファイル file のコピー をエディタのバッファに読 み込みます。以後の変更はそのコピーに対して行な われ、 file で指定したファイル自身が直接変 更されることはありません。 ed コマンドを終了する際、`w' コマンドで明示的にセーブしなかった 変更点はすべて失われます。 編集は、コマンドモードと入力モードの 2 つの異なるモードを 使い分けて行ないます。 ed を起動 したら、まずコマンドモードに入ります。 本モードでは、標準入力からコマンドを読み込み、それ を実行することで エディタバッファの内容操作を行ないます。 典型的なコマンドは、以下のような ものです。 ,s/old/new/g これは、編集しているテキストファイル中に old という文字列があったら、 これらをすべて文字列 new に置き換えるコマンドです。 `a' (append)、`i' (insert)、あるいは `c' (change) といった 入力コマンドが入力された場合、 ed は入力モードに移行します。 これが、ファイルにテキストを追加する主たる方法です。 この モードでは、コマンドを実行することはできません。 そのかわり、標準入力から入力されたデータ は、 直接エディタバッファへと書き込まれます。 行は、改行キャラクタまでのテキストデータおよ び、 最後の改行キャラクタを含むデータから構成されます。 ピリオド 1 つだけ (.) の行を入力す ると、入力モードを終了します。 すべての ed コマンドは、全ての行もしくは指定した範囲の行の操作が可能 です。例えば、 `d' コ マンドは指定した行を削除し、 `m' コマンドは 指定した行を移動します。上に示した例のよう に、置換によってある行の一部 分のみを変更することは可能ですが、 `s' コマンドは、一度に全部 の行に わたって変更を行なうことも可能です。 一般的には、 ed コマンドは、0 個以上の行番号および、 それに連なる 1 文字コマンドから成り立 ちます。場合によっては追加の パラメータをもつこともあります。 いうなれば、コマンドは以下の 構造を持ちます。 [address [,address]]command[parameters] アドレス (行番号) はコマンドの操作対象行あるいは対象行範囲を示します。 アドレスの指定個数 が、コマンドが受け付け可能な個数よりも少ない場合には、 デフォルトのアドレスが採用されま す。 オプション -G 強制的に後方互換性を有効にします。コマンド `G', `V', `f', `l', `m', `t', and `!!' に影響があります。 -s 診断メッセージを抑制します。本オプションは、 ed の入力がスクリプトによって行なわれ る場合に有効です。 -p string コマンドプロンプトとして表示する文字列を指定します。 コマンドプロンプトは、コマン ドモードで `P' コマンドを実行することで、 表示する/しないを切り替えることが可能で す。 file 編集対象のファイルを指定します。ファイル名の先頭に感嘆符 (!) が付加され ていた場 合、そのファイル名はシェルコマンドとして解釈されます。この場合、 編集対象として読 み込まれるテキストは、sh(1) が file で指定した コマンドを実行した結果、標準出力に 出力されるデータです。先頭が感嘆符で 始まるファイルを編集する場合には、ファイル名 の先頭にバックスラッシュ (\) を付加して下さい。感嘆符以外の文字で始まるファイル名 については、 編集対象のファイル名は file となります。 行指定 行は、バッファ内の行番号で表現されます。 ed は 現在行 を管理して おり、コマンドに行番号が 指定されない場合は、現在行がデフォルト行として 用いられます。ファイルが最初に読み出された 直後は、現在行はファイルの 最後の行となります。一般的に、現在行はコマンドが操作した最後の 行と なります。 行番号は、以下の一覧のうち 1 つおよび、補助的に付加される 相対行番号 (オフセット) から構成 されます。相対行番号は、 任意の数字の組み合わせ、演算子 (+, -)、 そして空白文字を含みま す。行番号は、左から右に解釈され、 それらの演算子を含む値は、現在行からの相対行番号と解釈 されます。 行番号の表現に関して上記の規則が適用される中で、 行番号 0 (ゼロ) に関しては、例外的な扱い がされます。 これは「最初の行より前」を意味し、 それが正しい意味を持つ場合は常に利用可能で す。 行範囲は、コンマもしくはセミコロンで区切られた 2 つのアドレスで 示されます。最初に指定され る行番号は、2 番目に指定される行番号を 超える値を指定してはいけません。行範囲指定で行番号 が 1 つしか指定 されなかった場合には、2 番目に指定されるアドレスとして最初に指定 されたア ドレスが設定されます。ここで 3 個以上の行番号が指定されると、 最後の 2 つの行番号で決定さ れる範囲がコマンド実行対象になります。 行番号の指定を 1 つだけしか想定していないコマンドの 場合、 最後の 1 つの行番号の行がコマンド実行対象となります。 コンマで区切られた各行番号は、現在行からの相対行を指し示します。 セミコロンで区切られてい る場合は、範囲の始めの行は現在行が設定され、 範囲の終りは始めの行からの相対行で表わされま す。 行番号の指定には、以下のシンボルが使用可能です。 . バッファ中の現在行を表します。 $ バッファ中の最終行を表します。 n バッファ内の n 番目の行を表します。 n は [0,$] の間です。 - 1 行前の行です。相対行指定 -1 と同等であり、 複数指定することで効果を累積すること が可能です。 ^n n 行前の行を表します。 n は、負でない整数です。 + 次の行を表します。 これは、+1 と同様であり、 - と同様の累積的指定が可能です。 whitespace n +n n 行後ろの行を表します。 n は、負でない整数です。 n の前に whitespace (空白文字) を付加して指定した場合も +n と解釈されます。 , バッファの最初から最後までを表します。 これは 1,$ と指定した場合と同等です。 ; バッファ中の現在行から最後の行までを表します。これは、 .,$ と指定した場合と同等で す。 /re/ 指定された正規表現 re を含む、(現在行よりも後ろの) 次の行を表します。 必要であれ ば、文字列検索はテキスト先頭に折り返し、現在行に達するまで 検索を行ないます。 // は、最後に行なった検索を繰り返します。 ?re? 指定した正規表現 re を含む、現在行より前の行を表します。 必要であれば、文字列検索 はテキストの最後に折り返し、 現在行に達するまで検索を行ないます。 ?? は、最後に行 なった検索を繰り返します。 'lc `k' (mark) コマンドでマークをつけた行を表します。 ここで lc は英小文字 1 文字で す。 正規表現 正規表現はテキストを選択する際に用いるパターンです。 例えば次の ed コマンド g/string/ は string を含む全ての行を表示します。 正規表現は `s' コマンドで古いテキストを新しいテキス トで 置き換える際にも用いられます。 文字リテラルを指定するのに加え、正規表現は文字列のクラスを表現すること ができます。このよ うにして表現された文字列は、それに対応する正規表現に 「マッチする」と言います。ある正規表 現が一つの行の中の複数の文字列に マッチする場合、マッチする部分のうち最も左にあって最も長 いものが選択 されます。 正規表現を組み立てる際には以下のシンボルが用いられます: c 以下に挙げるものを除く任意の文字 c は、その文字自身にマッチします。 このような文字 には `{', '}', `(', `)', `<', `>' が含まれます。 \c バックスラッシュでエスケープした文字 c は、その文字自身にマッチ します。ただし `{', '}', `(', `)', `<', `>' を除きます。 . 任意の一文字にマッチします。 [char-class] 文字クラス char-class に含まれる任意の一文字にマッチします。 文字クラス char-class に `]' を含めるには、文字 `]' を最初の文字に 指定します。文字の範囲を指定するに は、範囲の両端の文字の間を `-' で つなぎます。例えば `a-z' は小文字全体を表しま す。 以下のようなリテラル表記も、文字集合を指定するために文字クラス char-class で 使用することができます: [:alnum:] [:cntrl:] [:lower:] [:space:] [:alpha:] [:digit:] [:print:] [:upper:] [:blank:] [:graph:] [:punct:] [:xdigit:] 文字クラス char-class の最初あるいは最後の文字として `-' が用いられ ると、それはそ の文字自身にマッチします。文字クラス char-class 中の これ以外の文字は全て、それら 自身にマッチします。 以下の形式の文字クラス char-class のパターン [.col-elm.] と [=col-elm=] は locale(5) に沿って解釈されます (現在のところサポートされません)。 ここで col-elm は collating element です。 詳しい説明は regex(3) を参照して下さい。 [^char-class] 文字クラス char-class に含まれない、改行以外の任意の一文字に マッチします。文字ク ラス char-class は上で定義しています。 ^ `^' が正規表現の最初の文字である場合、その正規表現は行頭でのみ マッチします。それ 以外の場合、 `^' はそれ自身にマッチします。 $ `$' が正規表現の最後の文字である場合、その正規表現は行末でのみ マッチします。それ 以外の場合、 `$' はそれ自身にマッチします。 \(re\) 部分式 (subexpression) re を定義します。部分式はネストできます。 これ以降、 `\n' の形式の後方参照は、 n 番目の部分式にマッチしたテキストに展開されます (n は [1,9] の範囲の数)。 例えば、正規表現 `\(a.c\)\1' は、 同じ文字列が隣接しているような任意 の文字列にマッチします。 部分式は左側のデリミタから順に番号が振られます。 * 直前にある単一文字の正規表現あるいはその部分式のゼロ回以上の繰り返しに マッチしま す。 * が正規表現あるいはその部分式の最初の文字として用い られた場合、 * はその文 字自身にマッチします。 * 演算子は時に予期 しない結果をもたらすことがあります。例え ば、正規表現 `b*' は文字列 `abbb' の先頭にマッチします (部分文字列 `bbb' ではあり ません)。これは ヌルへのマッチが最も左にあるマッチだからです。 \{n,m\} \{n,\} \{n\} 直前にある単一文字の正規表現あるいはその部分式の、 n 回以上 m 回 以下の繰り返しに マッチします。m が省略された場合、 n 回以上の繰り 返しにマッチします。さらにコンマ も省略された場合、ちょうど n 回の 繰り返しにのみマッチします。この表現が正規表現や 部分式の先頭に登場した 場合は、リテラルとして解釈されます (すなわち、正規表現 `\{2\}' は 文字列 `{2}' などにマッチします。 \< \> これに続く単一文字の正規表現あるいはその部分式が、 ワード の先頭 (\<) や末尾 (\>) でのみマッチするようにします。 ワード とは ASCII で英数字文字が続く文字列で最長の ものです (アンダースコア (_) も文字列に含まれます)。 以下の拡張演算子は、以前からの ed の書式と区別するため、 バックスラッシュ (\) から始まりま す。 \` \´ 無条件に、行の先頭 (\`) や行の末尾 (\´) にマッチします。 \? 1 文字の正規表現か直前の部分式が 0 個か 1 個ある場合にマッチします。 例えば、正規 表現 `a[bd]\?c' は、文字列 `abc', `adc', `ac' に マッチします。 \? が正規表現か部 分式の先頭に登場した場合は、 リテラル `?' にマッチします。 \+ 1 文字の正規表現または直前の部分式の 1 回以上の繰り返しにマッチします。 正規表現 `a\+' は `aa*' の短い書き方です。 \+ が正規表現や部分式の 先頭に登場した場合は、リ テラル `+' にマッチします。 \b ワードの先頭や末尾にマッチします (マッチするのは空文字列です)。 正規表現 `\bhello\b' は `\<hello\>' と同じです。 但し、 `\b\b' は有効な正規表現ですが、 `\<\>' はそうではありません。 \B ワード内にマッチします (マッチするのは空文字列です)。 \w ワードを構成する任意の文字にマッチします。 \W ワードを構成する文字以外の任意の文字にマッチします。 コマンド 全ての ed コマンドは、1 文字からなりますが、追加パラメータが必要な コマンドもあります。コ マンドのパラメータが複数の行にわたる場合には、 そのパラメータを含めたコマンドの終りを含む 行を除き、行末に バックスラッシュ (\) を付加して下さい。 一般的には、1 行ごとに 1 コマンドを入れることが許されています。 しかしながら、ほとんどのコ マンドは、コマンド実行を行なった後のデータ更新 その他を確認するために、 `p' (print), `l' (list), `n' (enumerate) のような表示系のコマンドを同時に指定できます。 インタラプト (一般的には ^C) を入力することで、現在実行しているコマンド を強制終了し、コマ ンドモードに戻すことができます。 ed は、以下のコマンドを使用できます。コマンド実行時に何の指定もない 場合のデフォルトの行番 号もしくは行範囲が括弧内に示されています。 (.)a 指定した行の後にテキストを追加します。行番号 0 (ゼロ) も指定できます。 テキストは 入力モードで入力されていきます。 現在行番号は、入力された最後の行に設定されます。 (.,.)c バッファ内の指定した行を変更します。指定した行のデータは、バッファから 消去さ れ、そこに対してテキストデータを入力するようになります。テキスト は入力モードで入 力されていきます。現在行番号は、入力した最後の行に設定 されます。 (.,.)d 指定した範囲をバッファから削除します。削除した範囲の後に行が続いている 場合、現在 行番号は、その行に設定されます。そうでない場合には、現在行番 号は、削除された範囲 の前の行に設定されます。 e file file を編集し、デフォルトのファイル名を設定します。もし file が 指定されなかった場 合には、デフォルトのファイル名が使用されます。 本コマンド実行時に、それまで別の ファイルを編集していた場合には、 その内容はすべて消去され、新しいファイルが読み込 まれます。 現在行番号は、入力された最後の行に設定されます。 e !command !command で指定されたコマンドを実行し、その結果として標準出力へ出力 されたデータを 編集します (後述する !command を参照して下さい)。 デフォルトのファイル名は変更され ません。command の出力が読み込まれる 前に、バッファ内に存在した行はすべて消去され ます。現在行番号は、入力さ れた最後の行に設定されます。 E file 無条件で file で指定したファイルを読み込み、編集します。 e コマンドと動作は似てい ますが、すでにバッファ上のデータに変更が 加えられている場合でも、未書き込みの変更 を警告を出さずに捨ててしまう 点が異なります。現在行番号は、入力された最後の行に設 定されます。 f file デフォルトファイル名を file に設定します。 file 名が指定されない 場合には、デフォ ルトファイル名が表示されます。 (1,$)g/re/command-list command-list で指定されたコマンドを、指定した正規表現 re に一致 する各行に対して実 行します。現在行番号は、 command-list で指定された コマンドが実行される前に、指定 した正規表現に一致した行に設定されます。 `g' コマンドが終了した場合、現在行番号は 最後に command-list 実行 の影響を受けた行に設定されます。 command-list で指定されるコマンドは、1 行ごとに 1 つずつ書かれる 必要がありま す。各コマンド行の終りには、一番最後のコマンド行を除いては バックスラッシュ (\) を 記述する必要があります。コマンド `g', `G', `v', `V' を除くすべてのコマンドを指定可 能です。 command-list 中の空行は、 `p' コマンドと同等に扱われます。 (1,$)G/re/ 指定した正規表現 re に一致した行に対して、対話編集を行ないます。 指定した正規表現 に一致する文字列を含む行があると、その行を表示し、 現在行番号を設定します。そし て、ユーザに command-list の入力を 促します。 `G' コマンドが終了した場合、現在行番 号は、 command-list 実行の影響を受けた最後の行に設定されます。 command-list の記述形式は、 g コマンドで指定するものと同じです。 改行のみの場合 は、コマンド実行をしない (ヌルコマンドリストを指定した) ものとみなされます。`&' 文 字のみを入力した場合には、直前に実行した (ヌルコマンドリストではない) コマンドを再 実行します。 H エラーメッセージの出力の有無を切り替えます。デフォルトでは、 エラーメッセージは出 力されません。ed スクリプトを作成する場合、 スクリプトのデバッグのために、本コマン ドを最初に実行することを おすすめします。 h 最後に表示されたエラーメッセージを表示します。 (.)i 編集バッファ中の現在行の前に、テキストを挿入します。 テキストは入力モードで入力さ れていきます。 現在行番号は、入力された最後の行に設定されます。 (.,.+1)j 指定した範囲の行を 1 行に連結します。指定した行はバッファから削除され、 その行の内 容を含む 1 行に置き換えられます。 現在行番号は、置き換えられた行に設定されます。 (.)klc 行に、英小文字 lc で指定したマークをつけます。 その後、マークをつけられた行は、コ マンド中で 'lc (つまり、 シングルクォートと小文字 lc) として指定できるようになりま す。 マークは、その行が削除されるかもしくは変更されるかしない限り、 消えることはあ りません。 (.,.)l 指定した範囲の行の内容を見やすく表示します。 端末から起動された場合、各ページの終 わりで表示を一時停止し、 改行が入力されるまで待ちます。 現在行番号は、表示された最 後の行に設定されます。 (.,.)m(.) 指定した範囲の行をバッファ内で移動します。指定した行は、コマンドの右辺 で指定した 行の後ろに移動されます。移動先の行としては、0 (ゼロ) が 指定可能です。現在行番号 は、移動された最後の行の移動後の行に設定 されます。 (.,.)n 指定した行の内容を、行番号つきで表示します。 現在行番号は、表示された最後の行に設 定されます。 (.,.)p 指定した範囲の行の内容を表示します。 端末から起動された場合、 ed は各ページの終わ りで表示を一時停止し、 改行が入力されるまで待ちます。 現在行番号は、表示された最後 の行に設定されます。 P コマンドプロンプト表示の有無を切り替えます。コマンド起動時のオプション -p string でプロンプトが指定されていなければ、コマンドプロンプトの 表示はデフォルトでオフに なっています。 q ed を終了します。 Q 無条件に ed を終了します。このコマンドは q コマンドと似ていますが、 まだファイルに 書き出されていない変更があっても警告せずに終了する点が 異なります。 ($)r file file で指定されたファイルを、指定した行の後ろに読み込みます。 file が指定されない 場合、デフォルトのファイル名が読み込みに使用され ます。このコマンドに先だってデ フォルトのファイル名が設定されていない場 合、デフォルトのファイル名には、file で指 定されたものが設定されます。 それ以外の場合、デフォルトのファイル名は変更されませ ん。現在行番号は、 読み込まれたファイルの最後の行に設定されます。 ($)r !command command で指定されたコマンドを実行し、その結果として標準出力へ出力 されたデータを 指定した行の後ろに読み込みます (後述する ! command を 参照して下さい)。デフォルト のファイル名は変更されません。現在行番号は、 読み込まれた最後の行の行番号に設定さ れます。 (.,.)s/re/replacement/ (.,.)s/re/replacement/g (.,.)s/re/replacement/n 指定した行のテキスト中の、正規表現 re に一致する文字列を、文字列 replacement に置 き換えます。デフォルトでは、それぞれの行で最初に一致 した文字列のみを置き換えま す。 `g' (global) サフィックスが指定された 場合、一致した文字列はすべて置き換えら れます。 `n' サフィックス (`n' は正の整数) が指定された場合、 `n' 回目に一致した文 字列だけ を置き換えます。指定した範囲で一度も文字列の置換が起こらなかった場合、 エ ラーとみなされます。現在行番号は、最後に置換が発生した行に設定 されます。 re および replacement は、スペース、改行、 下記の `s' コマンド で使用されるキャラ クタ以外のすべてのキャラクタを用いて区切ることが可能 です。最後のデリミタのうち 1 つか 2 つが省略された場合、最後に文字列 置換が発生した行は、 `p' コマンドが指定さ れた場合と同様に表示されま す。 replacement 中のエスケープされていない `&' は、一致した文字列と置き 換えられま す。キャラクタシーケンス `\m' (`m' は [1,9] の範囲の 整数です) は、一致した文字列 の`m' 番目の後方参照で置き換えられます。 replacement の中に入る文字が `%' のみだっ た場合、最後に行なった置換 の replacement が使用されます。改行を replacement に指 定したい 場合は、バックスラッシュを用いてエスケープすれば可能です。 (.,.)s 最後の置換を繰り返します。この形式の `s' コマンドには、回数を示す サフィックス `n' と、文字 `r', `g', `p' の任意の 組み合わせを指定できます。 `n' が指定されると、 `n' 回目に一致し た文字列だけが置換されます。 `r' サフィックスが指定されると、最後 の 置換が発生した文字列の変わりに、最後に指定した正規表現が使用されます。 `g' サ フィックスは、最後の置換で用いたグローバルサフィックスの使用の 有効/無効を切り替え ます。`p' サフィックスは、最後の置換に指定された プリントサフィックスを反転しま す。現在行番号は、最後に置換が発生した行 に設定されます。 (.,.)t(.) 指定した範囲の行を、コマンド文字の右辺に指定した行番号の後に コピー (つまり転送) します。コピー先の行番号としては、 `0' (ゼロ) の指定が許されています。 現在行番号 は、コピーした一番最後の行の行番号に設定されます。 u 最後に実行したコマンドの実行結果を取り消し、現在行番号を、取り消したい コマンドが 実行される前のものに戻します。グローバルコマンドである `g', `G', `v', `V' について は、その改変は 1 コマンドで 行なわれたとして扱います。`u' は自分自身の動作を取り消 すことも できます。 (1,$)v/re/command-list 指定した範囲の行のうち、指定した正規表現 re と一致する文字列が含まれ ていない行に ついて、 command-list で指定したコマンドを実行します。 これは `g' コマンドに動作が 似ています。 (1,$)V/re/ 指定した範囲の行のうち、指定した正規表現 re に一致する文字列が 含まれていない行に ついて、対話編集を行ないます。これは `G' コマンド に動作が似ています。 (1,$)w file 指定した範囲の行を、 file で指定したファイルに書き出します。それまで file に格納さ れていた内容は、警告なしに消去されます。デフォルトファ イル名が設定されていない場 合、デフォルトファイル名は file に設定され ます。それ以外の場合では、デフォルト ファイル名は変更されません。ファイ ル名が指定されなかった場合には、デフォルトファ イル名が使用されます。 現在行番号は変更されません。 (1,$)wq file 指定した範囲の行を file で指定したファイルに書き出し、 `q' コマンドを実行します。 (1,$)w !command 指定した範囲の行の内容を !command の標準入力に書き出します (`!command' について は、以下の説明を参照して下さい)。 デフォルトファイル名および現在行番号は変更されま せん。 (1,$)W file 指定した範囲の行の内容を file で指定したファイルの後ろに追加書き込み します。 `w' コマンドと似ていますが、指定したファイルにそれまで格納 されていた内容がなくなるこ とはありません。現在行番号は変更されません。 (.)x カットバッファの内容を指定された行の後ろにコピー (挿入) します。 現在行番号は最後 にコピーが行われた行になります。 (.,.)y 指定した範囲の行の内容をカットバッファにコピー (yank) します。 カットバッファの内 容は、これ以降にコマンド `y', `s', `j', `d', `c' を実行すると上書きされます。 現在 行番号は変更されません。 (.+1)zn 指定した行から一度に n 行だけスクロールします。 n が指定されない 場合には、現在の ウィンドウサイズだけスクロールします。現在行番号は、 最後に表示した行の行番号に設 定されます。 !command command で指定したコマンドを、 sh(1) を用いて実行します。 command の最初の文字が `!'の場合には、その文字は直前に !command で実行したコマンド文字列が格納されます。 command 文字列をバックスラッ シュ (\) でエスケープした場合には、ed は処理を行ない ません。しかし、 エスケープされない `%' 文字があった場合には、その文字列はデフォル ト ファイル名に置き換えられます。シェルがコマンド実行から戻ってきた場合に は、`!' が標準出力に出力されます。現在行番号は変更されません。 (.,.)# コメントを開始します。改行までの残りの行は無視されます。 行番号とその直後にセミコ ロンを指定した場合、 現在行番号は指定された行番号に設定されます。 それ以外の場 合、現在行番号は変更されません。 ($)= 指定された行の行番号を表示します。 (.+1)newline 指定した行を表示します。そして、現在行番号を表示した行のものに 設定します。
ファイル
ed.hup 端末が回線切断した場合に、 ed がバッファ内容を書き出すファイル。
関連項目
vi(1), sed(1), regex(3), sh(1). USD:12-13 B. W. Kernighan and P. J. Plauger, Software Tools in Pascal , Addison-Wesley, 1981.
制限
ed は file 引数に対してバックスラッシュエスケープ処理を施します。 つまり、ファイル名中で バックスラッシュ (\) を前につけた文字は、 リテラルとして解釈されます。 (バイナリではない) テキストファイルの最後が改行文字で終っていない場合、 ed はそれを読み書 きする際に改行文字を追加します。バイナリファイルの 場合は、 ed はこのような改行文字追加は 行いません。 1 行あたりのオーバヘッドは、ポインタ 2 つ、long int 1 つ、 int 1 つです。
診断
エラーが発生すると、 ed は `?' を表示し、コマンドモードに戻るか、 スクリプトによる実行のエ ラーの場合にはプログラムを終了します。最後の エラーメッセージについての説明は、`h' (help) コマンドを用いることで 表示可能です。 変更されたバッファ内のデータを書き出さずに、ed を終了しようとしたり、 他のファイルを編集し ようとしたりすると、エラーになります。その場合でも、 同一のコマンドを 2 回入力すると、コマ ンドは成功します。しかし、それまで の未保存の編集結果は、すべて失われます。 ed はエラーが発生しなかった場合 0 で終了します。 それ以外の場合は >0 で終了します。 3 July 2010 ED(1)