日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
ED(1) FreeBSD 一般コマンドマニュアル ED(1) 名称 ed, red -- 行指向のテキストエディタ 書式 ed [-] [-sx] [-p string] [file] red [-] [-sx] [-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] 行番号は、コマンドの操作対象行または対象行範囲を示します。行番号の指定個 数が、コマンドが受け付け可能な個数よりも少ない場合には、デフォルトの行番 号が採用されます。 オプション 次のオプションが利用可能です: -s 診断メッセージを抑制します。本オプションは、ed の入力がスクリプト によって行なわれる場合に有効です。 -x 続く読み書きの際に行なわれる暗号化に用いる鍵の入力を促します (x コマンドを参照してください)。 -p string コマンドプロンプトとして表示する文字列を指定します。コマンドプロ ンプトは、コマンドモードで P コマンドを実行することで、表示する/ しないを切り替えることが可能です。 file 編集対象のファイルを指定します。file 名の先頭に感嘆符 (!) が付加 されていた場合、そのファイル名は、シェルコマンドとして解釈されま す。この場合、編集対象として読み込まれるテキストは、sh(1) が file で指定したコマンドを実行した結果、標準出力に出力されるデータで す。先頭が感嘆符で始まるファイルを編集する場合には、ファイル名の 先頭にバックスラッシュ (\) を付加して下さい。感嘆符以外の文字で始 まるファイル名については、編集対象のファイル名は、file となりま す。 行指定 行は、バッファ内の行番号で表現されます。ed ユーティリティは、現在行を管理 しており、コマンドに行番号が指定されない場合は、現在行がデフォルト行とし て用いられます。ファイルが最初に読み出された直後は、現在行は、ファイルの 最後の行となります。一般的に、現在行は、コマンドが操作した最後の行となり ます。 行番号は、以下の一覧のうち 1 つおよび、補助的に付加される相対行番号 (オフ セット) から構成されます。相対行番号は、任意の数字の組み合わせと演算子、 そして空白文字を含みます (例えば +, - と ^ が演算子に含まれます)。行番号 は、左から右に解釈され、それらの演算子を含む値は、現在行からの相対行番号 と解釈されます。 行番号の表現に関して上記の規則が適用される中で、行番号 0 (ゼロ) に関して は、例外的な扱いがされます。これは、「最初の行より前」を意味し、それが正 しい意味を持つ場合は、常に利用可能です。 行範囲は、コンマまたはセミコロンで区切られた 2 つのアドレスで示されます。 最初に指定される行番号は、2 番目に指定される行番号を超える値を指定しては いけません。行範囲指定で行番号が 1 つしか指定されなかった場合には、2 番目 に指定されるアドレスとして最初に指定されたアドレスが設定されます。n 組の 行番号が指定されるなら、ここで n > 2 です、n 組の最後の 2 つの行番号で決 定される範囲がコマンド実行対象になります。行番号の指定を 1 つだけしか想定 していないコマンドの場合、最後の 1 つの行番号の行がコマンド実行対象となり ます。 コンマで区切られた各行番号は、現在行からの相対行を指し示します。セミコロ ンで区切られている場合は、範囲の始めの行は、現在行が設定され、範囲の終り は、始めの行からの相対行で表わされます。 次のアドレスシンボルが解釈されます: . バッファ中の現在行を表します。 $ バッファ中の最終行を表します。 n バッファ内の n 番目の行を表します。ここで、n は、範囲 [0,$] の数 値です。 - または ^ 1 行前の行です。相対行指定 -1 と同等であり、複数指定することで効 果を累積することが可能です。 -n または ^n n 行前の行を表します。n は、負でない整数です。 + 次の行を表します。これは、+1 と同等であり、複数指定することで効果 を累積することが可能です。 +n n 行後ろの行を表します。n は、負でない整数です。 , または % バッファの最初から最後までを表します。これは、1,$ と指定した場合 と同等です。 ; バッファ中の現在行から最後の行までを表します。これは、.,$ と指定 した場合と同等です。 /re/ 指定された正規表現 re を含む、(現在行よりも後ろの) 次の行を表しま す。必要であれば、文字列検索は、テキスト先頭に折り返し、現在行に 達するまで検索を行ないます。// は、最後に行なった検索を繰り返しま す。 ?re? 指定した正規表現 re を含む、現在行より前の行を表します。必要であ れば、文字列検索は、テキストの最後に折り返し、現在行に達するまで 検索を行ないます。?? は、最後に行なった検索を繰り返します。 'lc k (mark) コマンドでマークをつけた行を表します。ここで lc は、英 小文字1文字です。 正規表現 正規表現は、テキストを選択する際に用いるパターンです。例えば、次のコマン ド 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.] or, [=col-elm=] は、現在のロケールに沿って解釈されます (現在のところサポートされ ません)。ここで col-elm は、collating element です。詳しい説明 は、regex(3) と re_format(7) を参照してください。 [^char-class] 文字クラス char-class に含まれない、改行以外の任意の一文字にマッ チします。文字クラス char-class は、上で定義しています。 ^ ^ が正規表現の最初の文字である場合、その正規表現は、行頭でのみ マッチします。それ以外の場合、それ自身にマッチします。 $ $ が正規表現の最後の文字である場合、その正規表現は、行末でのみ マッチします。それ以外の場合、それ自身にマッチします。 \< これに続く単一文字の正規表現またはその部分式が、単語の先頭でのみ マッチするようにします (この機能は、利用できない場合があります)。 \> これに続く単一文字の正規表現またはその部分式が、単語の末尾でのみ マッチするようにします (この機能は、利用できない場合があります)。 \(re\) 部分式 (subexpression) re を定義します。部分式は、ネストできま す。これ以降、\n (n は、[1,9] の範囲の数) の形式の後方参照は、n 番目の部分式にマッチしたテキストに展開されます。例えば、正規表現 `\(.*\)\1' は、同じ文字列が隣接しているような任意の文字列にマッチ します。部分式は、左側のデリミタから順に番号が振られます。 * 直前にある単一文字の正規表現またはその部分式の 0 回以上の繰り返し にマッチします。* が正規表現またはその部分式の最初の文字として用 いられた場合、その文字自身にマッチします。* 演算子は、時に予期し ない結果をもたらすことがあります。例えば、正規表現 `b*' は、文字 列 `abbb' の先頭にマッチします (部分文字列 `bbb' ではありませ ん)。これは、ヌルへのマッチが最も左にあるマッチだからです。 \{n,m\} or \{n,\} or \{n\} 直前にある単一文字の正規表現またはその部分式の、n 回以上 m 回以下 の繰り返しにマッチします。m が省略された場合、n 回以上の繰り返し にマッチします。更にコンマも省略された場合、ちょうど n 回の繰り返 しにのみマッチします。 各 regex(3) の実装によっては、更に正規表現演算子がいくつか定義されている ことがあります。 コマンド 全ての ed コマンドは、1 文字からなりますが、追加パラメータが必要なコマン ドもあります。コマンドのパラメータが複数の行にわたる場合には、そのパラ メータを含めたコマンドの終りを含む行を除き、行末にバックスラッシュ (\) を 付加して下さい。 一般的には、1 行ごとに 1 コマンドを入れることが許されています。しかしなが ら、ほとんどのコマンドは、コマンド実行を行なった後のデータ更新その他を確 認するために、p (print)、l (list)、または n (enumerate), のような表示系の コマンドを同時に指定できます。 インタラプト (一般的には、^C) を入力することで、現在実行しているコマンド を強制終了し、コマンドモードに戻すことができます。 ed ユーティリティは、以下のコマンドを使用できます。コマンド実行時に何の指 定もない場合のデフォルトの行番号または行範囲が括弧内に示されています。 (.)a 指定した行の後にテキストを追加します。テキストは、入力モードで入 力されていきます。現在行番号は、入力された最後の行に設定されま す。 (.,.)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 指定した範囲の行の内容を見やすく表示します。もし 1 つの行が 2 つ 以上の画面を占める場合 (例えばバイナリファイルを見ている場合など) ``--More--'' プロンプトが最下行に表示されます。次の画面を表示する 前に ed ユーティリティは、リターンキーが入力されるまで待ちます。 現在行番号は、表示された最後の行に設定されます。 (.,.)m(.) 指定した範囲の行をバッファ内で移動します。指定した行は、コマンド の右辺で指定した行の後ろに移動されます。移動先の行としては、0 (ゼ ロ) が指定可能です。現在行番号は、移動された最後の行に設定されま す。 (.,.)n 指定した行の内容を、行番号つきで表示します。現在行番号は、表示さ れた最後の行に設定されます。 (.,.)p 指定した範囲の行の内容を表示します。現在行番号は、表示された最後 の行に設定されます。 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 以降の読み書きで用いられる暗号化鍵の入力を促します。改行のみが入 力されると、暗号化は、解除されます。それ以外の場合、キー読み込み 中のエコーは、抑制されます。暗号化および復号化は、bdes(1) アルゴ リズムを用いて行われます。 (.+1)zn 指定した行から一度に n 行だけスクロールします。n が指定されない場 合には、現在のウィンドウサイズだけスクロールします。現在行番号 は、最後に表示した行の行番号に設定されます。 !command command で指定したコマンドを、sh(1) を用いて実行します。command の最初の文字が `!' の場合には、その文字は、直前に !command で実行 したコマンド文字列が格納されます。command 文字列をバックスラッ シュ (\) でエスケープした場合には、ed ユーティリティは、処理を行 ないません。しかし、エスケープされない % 文字があった場合には、そ の文字列は、デフォルトファイル名に置き換えられます。シェルがコマ ンド実行から戻ってきた場合には、`!' が標準出力に出力されます。現 在行番号は、変更されません。 ($)= 指定された行の行番号を表示します。 (.+1)newline 指定した行を表示します。そして、現在行番号を表示した行のものに設 定します。 関連ファイル /tmp/ed.* バッファファイル ed.hup 端末が回線切断した場合に、ed がバッファ内容を書き込むファイル 診断 エラーが発生すると、ed は、`?' を表示し、コマンドモードに戻るか、スクリプ トによる実行のエラーの場合には、プログラムを終了します。最後のエラーメッ セージについての説明は、h (help) コマンドを用いることで表示可能です。 g (global) コマンドは、検索や置換が失敗したというエラーを隠蔽します。その ため、スクリプトの中で条件つきコマンド実行を行なわせるのによく使われま す。例えば g/old/s//new/ は、出現した文字列 old をすべて文字列 new に置き換えます。u (undo) コマン ドがグローバルコマンドリスト内で実行された場合、コマンドリストは、1 度だ けの実行になります。 診断が無効にされていないと、ed を終了しようとする場合やバッファ内のデータ を書き込まずに他のファイルを編集しようとする場合にエラーになります。その 場合でも、同一のコマンドを 2 回入力すると、コマンドは、成功します。しか し、それまでの未保存の編集結果は、すべて失われます。 関連項目 bdes(1), sed(1), sh(1), vi(1), regex(3) USD:12-13 B. W. Kernighan and P. J. Plauger, Software Tools in Pascal, 1981, Addison-Wesley. 制限 ed ユーティリティは、file 引数に対してバックスラッシュエスケープ処理を施 します。つまり、ファイル名中でバックスラッシュ (\) を前につけた文字は、リ テラルとして解釈されます。 (バイナリではない) テキストファイルの最後が改行文字で終っていない場合、ed は、それを読み書きする際に改行文字を追加します。バイナリファイルの場合 は、ed は、このような改行文字追加は、行いません。 1 行あたりのオーバヘッドは、整数 4 つ分です。 歴史 ed コマンドは、Version 1 AT&T UNIX で登場しました。 バグ ed ユーティリティは、マルチバイト文字を認識しません。 FreeBSD 11.2 October 2, 2016 FreeBSD 11.2