名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 注意事項
ed ユーティリティは標準のテキストエディタです。 file が指定されていると ed は e コマンド ( 下記参照 ) を指定されたファイルについてシミュレートします。 その結果、このファイルは ed のバッファに読み込まれ、編集できるようになります。
ed ユーティリティは、編集されるファイルのコピーに 対して操作を行います。 つまり、コピーに対して行われた変更は w ( write ) コマンドが実行されるまで、そのファイルに対して有効になりません。 編集されるテキストのコピーは バッファという一時ファイルに存在します。バッファは 1 つしかありません。
red ユーティリティは ed の制限付きバージョンです。 red は現在のディレクトリ内のファイルしか編集できず、 !shell command によるシェルコマンドの実行もできません。 これらの制限を無視しようとするとエラーメッセージ (restricted shell) が表示されます。
ed と red は、両方とも fspec(4) フォーマット機能をサポートしています。 デフォルトの端末モードは stty –tabs または stty tab3 で、タブ位置は 8 カラムごとに設定されます ( stty(1) を参照 ) 。ただし file の先頭行にフォーマット指定が記述されていれば、デフォルトモード に優先してその指定が有効となります。 たとえば file の先頭行に次のように指定したとします。
<:t5,10,15 s72:>
この場合、タブ位置が 5 、 10 、 15 に、そして最大行長が 72 に設定されます。
ed コマンドは単純で、その構造は規則的です。最初に 0 から 2 個までのアドレス、次に 1 文字のコマンド、最後に (あれば) コマンドのパラメータが続きます。アドレスはバッファ内の 1 行または複数行を指定するものです。 アドレスが必要なコマンドはすべてデフォルトのアドレスを持っているので、 アドレスを省略することがよくあります。
一般に、 1 行に 1 つのコマンドだけ指定します。 コマンドの中には、テキストを入力するものもあります。 この時テキストは、バッファの中の適切な場所に格納されます。 ed がテキストを受け付けているときのことを「入力モード」であるといいます。 このモードではコマンドは認識されません。 すべての入力がそのまま受け付けられるだけです。 入力モードから抜けるには、行の先頭でピリオド ( . ) だけを入力して、キャリッジリターンを押します。
ed が引数のあるコマンドを実行する場合、 デフォルトのシェル /usr/bin/sh が使われます (sh(1) 参照) 。
ed が引数のあるコマンドを実行する場合、/usr/xpg4/bin/sh が使われます (ksh(1) 参照) 。
ed ユーティリティでは「正規表現」規則が使用できますが、 ある程度制限されています。 正規表現は、アドレスの中では行を指定するために、 また、いくつかのコマンド ( たとえば、 s) の中では行のうちの置換される部分を指定するために用いられます。 ed におけるアドレス指定方法を理解するには、 常に「現在行」が存在することを認識する必要があります。 一般に、現在行はコマンドによって影響を受けた最後の行です。 現在行が受ける影響については、 各コマンドの説明の箇所で述べます。
国際化された標準の正規表現は、 システムに与えられたすべてのロケールで 使用されます。 詳細については regex(5) を参照してください。
コマンドには 0 、 1 、または 2 個のアドレスを必要とします。 アドレスを必要としないコマンドにアドレスを指定するとエラーになります。 アドレスが必要なコマンドに必要な数のアドレスを指定しないと、 デフォルトのアドレスが採用されます。 必要以上にアドレスが指定されると、最後のアドレスの方から使用されます。
通常、アドレスはコンマ ( , ) によってお互いに区切られます。 セミコロン ( ; ) によっても区切られます。 後者の場合、最初のアドレスが計算され、 現在行 ( . ) がその値に設定されます。 その後、 2 番目のアドレスが計算されます。 この機能は、順方向および逆方向検索の開始行を決定するのに使用できます ( 上記規則 5 および 6 を参照 ) 。
以下に示す ed コマンドのリストでは、コマンドの前の括弧はアドレスの一部ではなく、 デフォルトのアドレスを示します。
各アドレス部分の先頭には任意の 2 個の空白文字を付加できます。 またコマンド文字の先頭にも任意の数の空白文字を付加できます。 接尾文字 (l 、 n 、または p) を指定するのであれば、コマンドの直後に記述しなければなりません。
e 、 E 、 f 、 r 、 w の各コマンドには、省略可能な file パラメタがあります。これを指定する場合には、コマンド文字との間に最低 1 個の空白文字を置くことが必要です。
バッファ全体を書き換えた最後の w コマンド実行後にバッファの内容が変更されているとき、 e または q コマンドによりエディタバッファを破壊しようとすると、 ed は警告を発します。具体的には以下の文字列を標準出力に書き出します。
"?\ n"
なお H コマンドにより「ヘルプモード」が起動されていれば、 状況を説明するメッセージが続いて出力されます。 この警告出力後も、 ed はコマンドモードのままで、現在の行番号は変わりません。 ここで続けて e または q コマンドを再度入力すれば、そのコマンドが実行されます。
標準入力から次のコマンドを読み込もうとして ファイルの終わりを検出した場合、 ed ユーティリティは q コマンドが入力された場合と同じように動作します。
一般に、 1 行に 2 つ以上のコマンドを指定するとエラーです。 しかし、すべてのコマンド ( e 、 f 、 r 、 w を除く ) は、 l 、 n 、または p コマンド ( それぞれ、現在行をリストする、番号付けする、出力する ) を接尾辞として付けることができます ( l 、 n 、および p コマンドを参照 ) 。
append コマンドは、 0 行以上のテキスト行を受け入れ、それをバッファ内 のアドレスが示す行の直後に追加します。現在行 ( . ) は、最後に挿入された行に設定されます。 挿入行がない場合は、アドレスが示す行に設定されます。 a コマンドではアドレス 0 は有効です。この場合、バッファの先頭にテキストを追加します。 端末から入力できる最大文字数は 1 行あたり 256 文字です ( 復帰改行文字 ( NEWLINE ) も含む ) 。
change コマンドは、バッファからアドレスで指定された行を削除し、 0 行以上のテキスト行をバッファ内に受け入れ、 削除された行と置換します。現在行 ( . ) は最終入力行に、または入力行がない場合、 削除された最後の行の直後の行に設定されます。 バッファの最終行を削除した場合、 現在の行番号は新たに最終行となった行のアドレスに設定されます。 削除によりバッファ内に行が残っていなければ、 現在の行番号はゼロに設定されます。
基本的に、後述する X コマンドと同じです。ただし、 NULL キーが入力されないかぎり、 e および r コマンドによって読み込まれたすべてのテキストを 暗号化されているものと見なします。
delete コマンドは、バッファからアドレスで指定された行を削除します。 削除された最後の行の直後の行が現在行に設定されます。 バッファの最終行を削除した場合、 新たに最終行となった行が現在行になります。 削除によりバッファ内に行が残っていなければ、 現在の行番号は ゼロとなります。
edit コマンドは、バッファの全内容を削除して file の内容をバッファ内に読み込みます。 現在行 (.) は、バッファの最終行に設定されます。 file が指定されないと、 ( もし、あれば ) 現在記憶されているファイル名を使用します ( f コマンド参照 ) 。 -s オプションが指定された場合を除き、読み込んだバイト数が以下の形式で 標準出力に書き出されます。
"%d\ n" 読み込んだバイト数 |
file は、後で使用する e 、 E 、 r 、および w コマンドのデフォルトのファイル名として記憶されます。 file の代わりに ! を指定すると、 ! 以降の文字列はシェル ( sh(1) ) コマンドと見なされ、その出力が読み込まれます。 このようなシェルコマンドは現在のファイル名として記憶されません。 後述の「診断」も参照してください。 e コマンドが正常に終了すると、すべてのマークは捨てられます。 バッファ全体が最後に書き換えた後でその内容が変更されているとき、 前述したように警告が発せられます。
Edit コマンドは、 基本的に、 e コマンドと同じです。ただし、最後の w コマンドを実行してからバッファの内容が変更されたか否かをチェックしません。
file が指定されると、 f コマンドは、現在記憶されているパス名を file に変更します。 次に、パス名を変更したか否かに関わらず、現在記憶されているパス名 ( 変更した場合は新しいパス名 ) を以下の形式で標準出力に書き出します。
"%s\ n" パス名 |
現在の行番号は変わりません。
global コマンドは、まず RE で指定された正規表現と一致する各行をマークします。 そして、該当するすべての行に対して、 まず現在行 ( . ) をその行に設定してから、 command list で指定したコマンドリストを実行します。 g コマンドが終了したとき、現在の行番号の値は、コマンドリスト中の 最後のコマンドが指定した値となっています。 一致する行が見つからなかった場合には、 現在の行番号の値は変わりません。 単一コマンドまたはコマンドリストの最初のコマンドは global コマンドと同一行に現われなければなりません。 コマンドが複数行にまたがる場合、 最終行以外の各行は バックスラッシュ ( \ ) で終わらなければなりません。 a 、 i、および c コマンドおよび関連する入力を複数行に指定できます。 入力モードを終了する . が command list の最後の行の場合、省略できます。空の command list は p コマンドと同じです。 g 、 G 、 v 、 V 、および ! コマンドは、 command list 内に書くことができません。 「注意事項」および「ファイル」 の前の最後のパラグラフも参照してください。 RE を区切る文字として、スラッシュの代わりに、 空白と復帰改行以外の任意の文字を使うことができます。 また区切り文字を RE 中で実際の文字として使いたければ、その前にバックスラッシュを 付加してください。
対話型 Global コマンドでは、最初に、 RE で指定された正規表現と一致する各行をマークします。 そして、該当する各行について、その行が標準出力に書き出され、 現在行 ( . ) がその行に変更され、この時点で、 1 つのコマンド ( a 、 c 、 i 、 g 、 G 、 v 、および V コマンドをのぞく ) が入力でき、入力されたコマンドは実行されます。 コマンドが実行されると、次のマークされた行が出力され、 以下同じ処理を繰り返します。 改行は無効なコマンドとして扱います。&は、現在起動中の G 内で、 最後に実行された NULL でないコマンドを再実行します。 注意 : G コマンド 実行中のコマンド入力はバッファ内の どの行でもアドレス指定したり、影響を与えたりできます。 現在の行番号の最終的な値は、最後に正常終了したコマンド が指定した値です (なお G で入力したコマンドが失敗した場合、または NULL コマンドが入力された場合は、 G 自身が「最後に正常終了したコマンド」となります )。 一致する行が見つからなければ、現在の行番号は変わりません。 G コマンドは SIGINT
シグナルによって終了させることができます。また、 割り込みシグナル ( ASCII DEL または BREAK ) でも終了できます。 RE を区切る文字として、スラッシュの代わりに、 空白と復帰改行以外の任意の文字を使うことができます。 また区切り文字を RE 中で実際の文字として使いたければ、その前にバックスラッシュを 付加してください。
help コマンドは、最後の ? 診断の理由を説明する短いエラーメッセージを出力します。 現在の行番号は変わりません。
Help コマンドは、 以後発生するすべての ? 診断のエラーメッセージを出力するモードにします。 もしあれば前の ? も説明します。 H コマンドは、このモードを交互にオンおよびオフにします。 最初はオフです。 現在の行番号は変わりません。
insert コマンドは、 0 またはそれ以上の行のテキストを受け入れ、 バッファ内のアドレス指定された行の前に挿入します。 現在行 ( . ) は最後に挿入された行に設定されます。 挿入行がない場合は、アドレス指定された行に設定されます。 i コマンドと a コマンドは、入力テキストの挿入位置だけ異なります。 このコマンドにはアドレス 0 は有効ではありません。 端末から入力できる最大文字数は 1 行あたり 256 文字です ( 復帰改行文字も含む ) 。
join コマンドは、 適当な復帰改行文字を削除することによって連続する行を結合します。 1 つのアドレスしか指定されないと j コマンドは何もしません。 行の結合が行われると、現在の行番号は結合された側の行のアドレスに 設定されます。結合が行われなければ、現在の行番号は変わりません。
mark コマンドは、 x という名前でアドレス行をマークします。 x は ASCII の小文字 (a–z) でなければなりません。 'x を指定すると、このマークされた行を指すようになります。 現在行 ( . ) は変更しません。
list コマンドは、アドレスされた行をすべての情報が見える形で標準出力へ書き出します。 \\ 、 \ a 、 \ b 、 \ f 、 \ r 、 \ t 、 \ v はそれぞれ対応するエスケープシーケンスとして書き出されます。 テーブル中にある \ n は適用外です。テーブル中にない非印字文字に関しては、各バイトごと ( 最上位ビットから ) に 3 桁の 8 進数で、前にバックスラッシュが付加された形式で出力されます。 長い行は折り返されます。折り返しの発生地点にはバックスラッシュと 復帰改行文字が表示されます。 折り返し地点の長さは不定ですが、出力装置に適した値に なっています。各行の終わりは $ でマークされます。 l コマンドは、 e 、 E 、 f 、 q 、 Q 、 r 、 w 、 ! 以外のすべてのコマンドの後に付けられます。 現在の行番号は、最後に出力された行のアドレスに設定されます。
move コマンドは、アドレス行を a で示される行の後に移動します。アドレス 0 を a に書いても有効で、その場合アドレス行をファイルの先頭に移動します。 アドレス a が移動する行の範囲内にあるとエラーになります。 現在行 ( . ) は移動した最後の行に設定されます。
number コマンドは、行番号とタブの後に、アドレス行を出力します。 現在行 ( . ) は出力した最後の行に設定されます。 n コマンドは e 、 E 、 f 、 q 、 Q 、 r 、 w 、または ! 以外のすべてのコマンドの後に続きます。
print コマンドは、アドレス行を標準出力に出力します。 現在行 ( . ) は出力した最後の行に設定されます。 p コマンドは、 e 、 E 、 f 、 q 、 Q 、 r 、 w 、または ! 以外のすべてのコマンドの後に付けられます。 たとえば、 dp というコマンドは、現在行を削除して新しい現在行を出力します。
コマンドは、 後続のすべてのコマンドにアスタリスク (*) (-p 指定時は 文字列 ) によるプロンプトをつけて入力を促します。 P コマンドは、このモードを交互にオンまたはオフします。 初期値は、 -p オプション指定時はオン、省略時はオフです。 現在行は変わりません。
quit コマンドは、 ed を終了します。バッファ全体が書き換えられた後でバッファの内容が 変更されていると、警告が発せられます。 後述の「診断」を参照してください。
エディタは、最後の w コマンドの後、バッファが変更されたか否かをチェックしないで終了します。
read コマンドは、 file の内容をバッファ内に読み込みます。 file が指定されないと、(もしあれば) 現在記憶されているファイル名を使用します ( e および f コマンド参照 )。 file が ed 起動後参照された 最初のファイル名でないかぎり、現在記憶されているファイル名は 変更されません。 r コマンドにはアドレス 0 は有効です。この場合、バッファの先頭にファイルを読み込みます。 読み込みに成功すると、 -s オプションが省略されていれば、 読み込まれた文字数が以下の形式で標準出力に書き出されます。
%d\ n 読み込んだバイト数 |
現在行 ( . ) は読み込まれた最後の行に設定されます。 file の代わりに ! を指定すると、 ! 以降の文字列はシェルコマンド ( sh(1) 参照 ) と見なされ、その出力が読み込まれます。 たとえば、 $r !ls は編集中のファイルの最後に現在のディレクトリを追加します。 このようなシェルコマンドは、現在のファイル名として記憶されません。
substitute コマンドは、各アドレス行について、 RE で示された正規表現を検索します。 これらの置換コマンドは、任意の数だけ指定できます。 一致が発生した各行に対して、 グローバル置換指示子 g がコマンドの後にあれば、すべての ( 重ならない ) 一致した文字列を replacement に置換します。 グローバル指示子がなければ、 一致した文字列の最初のものだけを置換します。 数字 count がコマンドの後にあれば、各アドレス行内で一致した文字列のうち count 番目のものだけを置換します。 すべてのアドレス行について置換が失敗するとエラーになります。 正規表現 RE と replacement を区切るには、スラッシュ (/) の代わりに空白文字と復帰改行以外のすべての文字が使用できます。 現在行 ( . ) は置換が発生した最後の行に設定されます。 RE の区切り文字を RE 中で実際の文字として使いたければ、その前にバックスラッシュを付加してください。 「ファイル」 の前の最後のパラグラフも参照してください。 replacement 内のアンパサンド ( & ) は、現在行上で正規表現 RE と一致した文字列に置き換えられます。 この場合の & の特別な意味は、 \ を前につけることによって抑止できます。 さらに一般的な機能として、文字列 \n ( n は数字 ) は、 指定された正規表現 RE の \ ( と \ ) で囲まれた n 番目のサブ正規表現と一致するテキストに置換されます。 ネストされた括弧付きサブ正規表現が存在する場合、 n は左から数えた \ ( の発生回数によって決まります。 文字 % が replacement 内の唯一の文字であるとき、最後の置換コマンドで使用した replacement を現在の置換コマンドの replacement として使用します。 ただしそれ以前に置換コマンドがなかった場合、 このような % の使い方はエラーとなります。 % は、複数の文字の置換文字内にあるとき、または \ が前に付くときには、その特別な意味を失います。 replacement を先頭から終端まで走査する際にバックスラッシュ (\) が検出されると、後続の文字は特殊な意味を持っていたとしても その意味を失います。 なお & 、 \ 、 % および数字以外の文字については、どのような特殊な意味が与えられているか は不定です。 1 行を分割するには、復帰改行文字で置換します。 replacement 内の復帰改行文字は、 \ を前に付けてエスケープしなければなりません。 このような置換は、 g または v コマンドリストの一部としては実行できません。 現在の行番号は、置換が行われた最後の行のアドレスに設定されます。 置換がまったく行われないと、現在の行番号は変わりません。 行が分割されると、新たな現在の行番号を決定するため、 分割で発生した両方の行で置換が行われたものと見なされます。 置換文字列が置換対象となる文字列と同一の場合でも、 置換は発生したと見なされます。 置換コマンドは以下に示す指示子をサポートします。
各アドレス行で見つかった RE のうち、 count 番目のものだけを置換します。 count は 1 から 512 までの値でなければなりません。
最初のものだけでなく、すべての重なっていない RE を一括して置換します。 g と count の両方を指定した場合、結果は保証できません。
置換を行なった最後の行の内容を標準出力に書き出します。 出力形式は l コマンドのものと同じです。
置換を行なった最後の行の内容を標準出力に書き出します。 出力形式は n コマンドのものと同じです。
置換を行なった最後の行の内容を標準出力に書き出します。 出力形式は p コマンドのものと同じです。
t コマンドは、 m コマンドと同じように動作します。ただし、 アドレス行のコピーがアドレス a ( 0 でもよい ) の後に置かれます。 現在行 ( . ) はコピーされた最後の行に設定されます。
undo コマンドは、 バッファの内容を変更した最後のコマンドの実行結果を無効にします。 無効にできるコマンドは、最後に実行した a 、 c 、 d 、 g 、 i 、 j 、 m 、 r 、 s 、 t 、 u 、 v 、 G 、または V コマンドです。 グローバルコマンドの g 、 G 、 v 、または V でバッファを変更していた場合、一括してその変更を無効にします。 グローバルコマンドで変更が行われていない ( たとえば g/RE /p) 場合、 u コマンドは何も意味を持ちません。 現在の行番号は、無効にしたコマンドの開始直前に設定されていた値に戻ります。
v コマンドは、基本的に、グローバルコマンド g と同じです。ただし、 最初の段階でマークされる行は RE で示す正規表現に一致しない ものです。
V コマンドは、基本的に、対話型グローバルコマンド G と同じです。ただし、 最初にマークされる行は RE で示す正規表現に一致しない ものです。
write コマンドはアドレス行を file に書き込みます。 file が存在しない場合は、 ファイル生成マスクが他のモードで指定されていないかぎり、 モード 666 ( すべてのユーザーが読み込み、書き込み可能 ) で作成します。 sh(1) 上での特殊コマンド umask の説明を参照してください。 file が ed 起動後参照された 最初のファイル名でないかぎり、現在記憶されているファイル名は 変更されません。 file が指定されないと、(もし、あれば) 現在記憶されているファイル名を使用します ( e および f コマンド参照 )。 現在行 ( . ) は変更されません。 コマンドが正常終了すると、 -s オプションが省略されていれば、書き込まれた文字数が以下の形式で 出力されます。
"%d\ n", 書き込んだバイト数 |
file の代わりに ! を指定した場合、 ! 以降のテキストは、アドレス行が標準入力であるシェル ( sh(1) 参照 ) コマンドと見なされ、その出力が読み込まれます。 このようなシェルコマンドは、現在のパス名として記憶されません。 このような ! を伴った w コマンドは、「バッファ全体を書き換えた最後の w コマンド」と見なされます。
W コマンドは基本的に上述の write コマンドと同じです。ただし、 アドレス行を file ( 存在する場合 ) の最後に追加します。 file が存在しない場合、上述の w コマンドで述べたようにファイルを作成します。
e および r コマンドで編集するために 読み込まれたテキストが暗号化されているか否かを判定します。 キーとして空文字列を与えると暗号化を無効にします。これ以後の e 、 r 、および w コマンドは、このキーをテキストの暗号化または復合化に使用します 。 明示的に空文字列をキーとして指定した場合は 暗号化は無効になります。 ed のオプション -x も参照してください。
アドレス行の行番号が、次に示す形式で標準出力に表示されます。
"%d\ n" 行番号 |
このコマンドによって、現在の行番号は変更されません。
! 以降のテキストを UNIX システムシェル ( sh(1) 参照 ) に送信し、コマンドとして解釈します。 コマンドテキストにエスケープされていない % 文字を指定すると、記憶されているファイル名に置換されます。 ! がシェルコマンドの最初の文字として現われる場合、 それは前のシェルコマンドのテキストで置換されます。 つまり、 !! は最後のシェルコマンドを繰り返します。 % または ! による置換が実行されると、変更された行の内容が command の実行前に標準出力に書き出されます。 -s オプションが省略されていれば、 ! コマンドは終了時に以下のメッセージを標準出力に書き出します。
"!\ n" |
現在の行番号は変更されません。
行にアドレスだけを指定すると、そのアドレス行を出力します。 復帰改行文字だけの場合、.+1p と同じです。 つまり、バッファ内を進むのに使用します。 現在の行番号は、書き出した行のアドレスに設定されます。
割り込みシグナル ( ASCII DEL または BREAK ) が送信されると、 ed は "?\ n" を出力して、 ed のコマンドレベルに戻ります。 ed ユーティリティはすべてのシグナルに対して標準的な動作を行います。 ただし次の 2 つのシグナルは例外です。
SIGINT
ed ユーティリティは現在の動作を中断し、文字列 "?\ n" を標準出力に書き出し、コマンドモードに戻ります。
SIGHUP
バッファが空でなく、最後の書き込み処理以降に変更されている場合、 ed ユーティリティはファイル中にバッファのコピーを生成しようとします。 その対象ファイルとして、まず現在のディレクトリ中の ed.hup というファイルが選ばれます。それが失敗すると、環境変数 HOME が示すディレクトリ中の ed.hup というファイルが選ばれます。 いずれの場合も ed は、コマンドモードに戻らないで終了します。
いくつかのサイズ制限があります。 1 行は 512 文字以下、グローバル・コマンドリストは 256 文字以下、ファイルのパス名は 255 文字以下です ( スラッシュを含む ) 。 行数の制限はユーザーのメモリ容量によって異なります。 1 行には 1 ワード必要です。
ファイルを読むとき、 ed は ASCII と NULL 文字を破棄します。
ファイルが復帰改行文字で終了していないとき、 ed はそれを追加して、その旨を説明するメッセージを表示します。
正規表現 RE または置換文字列の終端区切り文字 ( たとえば、/ ) が復帰改行文字の直前の文字のとき、区切り文字は省略できます。 いずれの場合もアドレスされた行が出力されます。 次の各組のコマンドは同じものと見なされます。
s/s1/s2/p
g/s1/p
?s1?
不正なコマンドが投入されると、 ed は以下の文字列を標準出力に書き出します。
"?\ n" |
このとき H コマンドにより「ヘルプモード」が有効になっていれば、 状況を説明するメッセージが付加されます。 上記文字列出力後、 ed はコマンドモードを継続します。現在の行番号は変わりません。
暗号化オプション。 基本的に、 -x オプションと同じです。ただし、 ed は、 C コマンドをシミュレートします。 C コマンドは、基本的に、 X コマンドと同じです。ただし、 読み込まれたすべてのテキストが暗号化されていると見なされます。
ユーザーがプロンプト文字列を指定するのを許可します。 デフォルトではプロンプト文字列はありません。
e 、 r 、および w コマンドによる文字カウント、 e および q コマンドからの診断、および !shell command の後の ! プロンプトを出力しません。
暗号化オプション。 ed は、 X コマンドをシミュレートして、ユーザーにキーの入力を要求してきます。 X コマンドは読み込まれたテキストが 暗号化されているか否かを判定するのに高度な推測を行います。 一時バッファファイルも、 -x オプションで入力したキーを変形したバージョンを用いて暗号化されます。 本マニュアルページの最後の節「注意事項」 も参照してください。
以下のオペランドを指定できます。
この file 引数を指定すると、 ed は、標準入力からコマンドを読み込む前に、パス名 file で示されるファイルに e コマンドを適用したかのように動作します。
ファイルが 2 ギガバイト ( 231 バイト) 以上ある場合の ed と red の動作については、 largefile(5) を参照してください。
ed の実行に影響を与える環境変数 HOME
、 LC_CTYPE
、 LC_COLLATE
、 LC_MESSAGES
、 NLSPATH
についての詳細は、 environ(5) を参照してください。
この環境変数が NULL でない場合、 その値は一時作業ファイルのディレクトリ名として /var/tmp の代わりに使用されます。
/var/tmp が存在する場合、一時作業ファイルのディレクトリ名として使用されます。
環境変数 TMPDIR が存在しないか NULL で、さらに /var/tmp が存在しない場合、 /tmp が一時作業ファイルのディレクトリ名として使用されます。
端末がハングアップしたとき、作業ファイルがここに保存されます。
次の属性については attributes(5) のマニュアルページを参照してください。
bfs(1), edit(1), ex(1), grep(1), ksh(1), sed(1), sh(1), stty(1), umask(1), vi(1), fspec(4), attributes(5), environ(5), largefile(5), regex(5), XPG4(5)
コマンドエラー
アクセス不可能なファイル ( 詳細については help および Help コマンドを使用してください )。
最後に w コマンドを使用して全バッファを書き出した後に バッファの内容が変更された場合、 e または q コマンドによってバッファの内容を破棄しようとすると、 ed はユーザーに対して 警告を発し、 ? を出力して編集を続行するか否かを聞いてきます。ここで再度 e または q コマンドを入力すると、これらのコマンドは実行されます。 -s コマンド行オプションは、上述の機能を禁止します。
– オプションは、サポートはされていますが、ドキュメント内では コマンド構文規格に準拠する -s オプションで置き換えました ( intro(1) 参照 ) 。
g または v コマンドに対して ! コマンドは無効です。
! コマンドと e 、 r 、および w コマンドからのエスケープコマンド ! は、エディタが制限付きシェル ( sh(1) 参照 ) から起動されているときには使用できません。
正規表現 RE 内の \ n シーケンスは復帰改行文字と一致しません。
エディタの入力がコマンドファイル ( たとえば、 ed file < ed_cmd_file) からの場合、最初にエラーが発生した時点でエディタは終了します。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断 | 注意事項