ed - ed 行指向テキスト・エディターを使用する

形式

ed [–Bbs] [–p prompt] [-W option[,option]...] [file]

説明

ed は、対話式にテキスト・ファイルを操作できる行指向の テキスト・エディターです。ed は、ファイルのテキストを メモリーに読み取り、buffer と呼ばれる区域に保管します。種々の サブコマンドによって、バッファー内のテキストを編集することができます。また、バッファーの内容をファイルに書き出すこともできます。その際、ファイルの古い内容は上書きされます。

オプション

–B
タグ付きファイルの自動変換を使用不可にします。filecodeset または pgmcodeset オプション (-W オプション) が指定されている場合、このオプションは無視されます。
–b
ページング専用のメモリーの量を制限することによって、 より大きいファイルが編集できるようにします。 大容量のメモリーを使用すると、ed の実行がより遅くなる場合があります。
–p prompt
サブコマンドの入力をプロンプト指示するために、指定された prompt ストリングを表示します。デフォルトでは、ed はサブコマンドの入力について通常はプロン プトを出しません。サブコマンドのプロンプトについての詳細は、サブコマンドを参照してください。
–s
ed を抑制モードにします。このモードでは、eEr お よび w サブコマンドは ファイル・サイズ・カウントを表示せず、q お よび e サブコマンドはバッファーが 変更されたかどうかをチェックせず、サブコマンドを実行するためにシェルを呼び出した後に ! が表示されません。このモードは、シェル・スクリプト内から ed を 起動するとき特に役に立ちます。
-W option[,option]...
z/OS 固有のオプションを指定します。オプションのキーワードは、大/小文字が区別されます。指定可能なオプションは、以下のとおりです。
filecodeset=codeset
ファイルの読み取り時に、あるコード・セットから別のコード・セットへのテキスト変換を実行します。ファイルのコード化文字セットは codeset です。codeset は、システムに認識されているコード・セット名かコード化数字セット ID (CCSID) のいずれかです。コマンド iconv -l は、既存の CCSID とそれらに対応するコード・セット名をリストすることに留意してください。どんなファイル・タグを含むファイルであっても、filecodeset および pgmcodeset オプションを使用できます。

pgmcodeset を指定したが filecodeset を省略した場合、ファイルが別のコード・セットでタグ付けされていても、ファイルのデフォルトのコード・セットは ISO8859-1 です。filecodesetpgmcodeset のいずれも指定しない場合、自動変換が有効であるか、_TEXT_CONV 環境変数にテキスト変換が指定されていない限り、テキスト変換は実行されません。 テキスト変換について詳しくは、z/OS UNIX シェル・コマンドのテキスト変換を制御するを参照してください。

filecodeset または pgmcodeset を指定した場合、このコマンドの呼び出しに対する自動変換は無効となり、-B オプションを指定しても無視されます。自動変換について詳しくは、「z/OS UNIX System Services 計画」を参照してください。

filecodeset の値を指定するときは、Unicode Service でサポートされる値を使用します。サポートされるコード・セットについて詳しくは、「z/OS Unicode Services ユーザーズ・ガイドおよび解説書」を参照してください。

pgmcodeset=codeset
ファイルの読み取り時に、あるコード・セットから別のコード・セットへのテキスト変換を実行します。プログラム (コマンド) のコード化文字セットは codeset です。codeset は、システムに認識されているコード・セット名かコード化数字セット ID (CCSID) のいずれかです。コマンド iconv -l は、既存の CCSID とそれらに対応するコード・セット名をリストすることに留意してください。どんなファイル・タグを含むファイルであっても、filecodeset および pgmcodeset オプションを使用できます。

filecodeset が指定されているが pgmcodeset が省略されている場合、デフォルトのプログラム・コード・セットは IBM-1047 です。filecodesetpgmcodeset のいずれも指定しない場合、自動変換が有効であるか、_TEXT_CONV 環境変数にテキスト変換が指定されていない限り、テキスト変換は実行されません。 テキスト変換について詳しくは、z/OS UNIX シェル・コマンドのテキスト変換を制御するを参照してください。

filecodeset または pgmcodeset を指定した場合、このコマンドの呼び出しに対する自動変換は無効となり、-B オプションを指定しても無視されます。自動変換について詳しくは、「z/OS UNIX System Services 計画」を参照してください。

制約事項: pgmcodeset のサポートされる値は、IBM-1047 と 1047 のみです。

コマンド行にオプショナルの file 引数がある場合は、ede file サブコマンドをシミュレートすることによって、指定された file をエディター内に読み込みます。

アドレス

ed のサブコマンドの前に、ゼロ、1 つ、または 2 つの接頭部を付けることができます。これらのアドレスによって、単一行、またはある範囲の行をバッファー内で 参照することができます。デフォルトのアドレスを使用するいくつかのサブコマンドには、アドレスを指定する必要はありません。個々のサブコマンドについては、その説明を参照してください。各アドレスは、以下のコンポーネントで構成することができます。
.
単一のドット 文字は、バッファー内の現在行 を 表します。多くのサブコマンドが現在行 を設定します。例えば、e コマンドは、編集する新規ファイルの最後の行に設定します。
$
ドル記号は、バッファーの最後の行を指します。
n
n は、バッファー内の n 番目の行を参照します。
/regexp/
これは、正規表現 regexp に一致するストリングを含んでいる行を 検索します。 検索は、現在行の直後の行から始まります。検索は、バッファー内を前方向 に進められます。一致が見つからずにバッファーの終わりに到達した場合は、ed はバッファーの最初の行に循環し、検索を続けます。ed が一致を見つけなかった場合は、もとの現在行に到達したときに検索が終了します。一致を見つけた場合は、アドレス /regexp/ は 最初の一致行を指します。regexp を省略した場合は、前回使用した正規表現が正規表現の対象になります。末尾の / は省略することができます。regexp 内では、¥/ はリテラルの スラッシュを表し、regexp の区切りにはなりません。
?regexp?
バッファー内を後方向 に検索することを除いては、上記のアドレス形式と同様です。一致が見つからないバッファーの最初の行に到達した場合は、ed はバッファー内の最後の行に循環し、後方向に検索を続けます。regexp を省略した場合は、前回使用した正規表現が正規表現の対象になります。末尾の ? は省略することができます。regexp 内では、¥? はリテラルの疑問符 (?) を 表し、regexp の区切りにはなりません。
'l
アドレスは、マーク名 l でマークされた行です。名前 l は、k サブコマンドで設定された小文字でなければなりません。

+ および 演算子を使用して、これらの基本アドレスと数字を組み合わせることができます (演算に ついては通常の解釈が行われます)。左側のオペランドがない場合は、デフォルトによって . (ドット) と見なされます。右側のオペランドがない場合は、デフォルトによって 1 と見なされます。また、右側のオペランドがない場合には、その効果が累積されます。したがって、– – のアドレスは現行行番号マイナス 2 を指します。

アドレスの範囲は、以下のように指定することができます。
a1,a2
アドレス a1 からアドレス a2 の範囲 (両方を含む) を指定します。a1 および a2 を省略した場合 (すなわち、コンマだけを指定した場合) は、これは範囲 1,$ と同等です。
a1;a2
上記の形式と同様ですが、ed は最初のアドレス a1 を計算した後で 現在行をリセットし、2 番目のアドレス a2a1 に 相対的になるようにする点が異なります。a1 および a2 を省略 した場合 (すなわち、セミコロンだけを指定した場合) は、これは .;$ と同等です。a1 だけが指定され、コマンドが a1 および a2 の両方を必要とする場合は、そのコマンドはあたかも次の範囲が指定されたかのように処理されます。
a1;. command
>
.,.+22 (すなわち、次ページ) と同等です。ただし、$ を超える行を指すことはありません。
<
.–22,. (すなわち、前ページ) と同等です。ただし、行 1 より前の行を指すことはありません。

サブコマンド

ed コマンドは、[address] command

の形式です。

すべてのコマンドは改行で終わります。したがって、<Enter> を押す必要があります。 大部分のコマンドは 1 行に 1 コマンドしか認められません。ただし、ln、および p コマンドを追加することによって、コマンドを変更することができます。

サブコマンドには、一般に、最大ゼロ、1 つ、または 2 つのアドレスが必要です。これは特定のサブコマンドによって決まります。以下の説明では、コマンドと共に デフォルトのアドレス (アドレスが指定されなかった ときに使用されるアドレス) が示されており、その形式は、そのコマンドに許される アドレスの最大数を示しています。file 引数を指定するサブコマンドでは、file はパス名または 次の形式になります。
!command-line
! 形式を使用した場合、ed は与えられたコマンド行を実行し 、ed コマンドが読み取りを行うのか、書き込みを行うのかに従って 、標準出力 (stdout) を読み取り、または標準入力 (stdin) を 書き込みます。
端末の切断が検出された場合:
  • バッファーが空でなく、最後の書き込みの後に変更されている場合、ed ユーティリティーはバッファーのコピーを現行ディレクトリー内の ed.hup という名前のファイルに書き込もうとします。この書き込みが失敗した場合、ed は HOME 環境変数で指定されたディレクトリー内のファイル名 ed.hup にバッファーのコピーを書き込もうとします。これらの両方の試みが失敗した場合、ed はバッファーを保存せずに終了します。
  • ed ユーティリティーは、現在記憶されているパス名へファイルを書き込まず、またコマンド・モードにも戻らずに、終了状況 1 で終了します。
標準入力上でファイルの終わりが検出された場合:
  • ed ユーティリティーが入力モードにある場合、ed は入力モードを終了し、コマンド・モードに戻ります。部分的に入力された行 (つまり、終了の改行がない入力テキスト) は保存されます。
  • ed ユーティリティーは、コマンド・モードにある場合、q コマンドが入力された場合と同じ動作をします。
ed は、以下のサブコマンドを受け付けます。
.a
指定された行の後に テキストを追加します。有効なアドレスは、0 (テキストはバッファーの先頭、最初の 行の前に置かれます) から $ (テキストはバッファーの最後の行 の後に置かれます) の範囲です。ed は、ワークステーションからテキストの行を読み取り、エスケ ープされていない . (ドット) だけの行が入力されるまで読み取りを続けます。ed は、現在行標識を、追加された最後の行に設定します。
.,.c
指定されたアドレスの範囲の行を変更します。これは、まずその範囲の行を削除し、次に、a または i サブコマンドと 同様の方法で新しいテキストを読み取ることによって行われます。変数 _UNIX03 が YES に設定されている場合、 アドレス 0 は、このサブコマンドに対して有効となり、アドレス 1 が指定された場合と同じように解釈されます。
.,.d
指定されたアドレスの範囲の行を削除します。削除された最後の行の次の行が新規の現在行になります。バッファーの最後の行を削除した場合は、ed は現在行を新しい最後の行に設定します。バッファー内に行が残っていない場合は、現在行は 0 に設定されます。
E[file]
e コマンドと同様ですが、バッファーが変更された場合、ed は警告を出しません。
e [file]
現行バッファーの内容を file の内容で置き換えます。ed コマンド (例えば、-B または -W オプション) で指定したテキスト変換が使用されます。file を指定しなかった 場合、ed は記憶されたファイル名があれば、そのファイル名を使用します。すべての場合に、e サブコマンドはファイルからバッファーへの読み取りが 終わるとすぐに、そのファイル名を記憶されたファイル名に設定します。ed は、静止 モードにある場合を除いて、ファイル内のバイト数を表示します。現行バッファーの内容が最後に書き込まれた後で 変更されている場合は、ed はサブコマンドを実行せず、e サブコマンドの実行を試みるかどうかの警告を出します。e サブコマンドを 2 回目に入力した場合は、ed は先に進み、コマンドを実行します。
f [file]
記憶されたファイル名を file に変更します。ed は、新しい記憶されたファイル名を表示します。file を指定しなかった場合、ed は現行の記憶されたファイル名を表示します。
1,$G/regexp/
g コマンドと同様ですが、regexp に一致する行を 検出したとき、ed はその行を出力し、実行するサブコマンドが 入力されるのを待つという点が異なります。acigGv、および V サブコマンドを使用することはできません。& を入力した場合、G サブコマンドは最後に入力された サブコマンドを再実行します。単に <Enter> を押しただけでは、G はその行に対してサブコマンドを何も実行しません。G サブコマンドの実行の一部として入力されたサブコマンドは、バッファー内のすべての行を操作し影響を及ぼす可能性があることに注意してください。変数 _UNIX03 が YES に設定されている場合、このサブコマンドによって変更された行はマーク解除されます。
1,$g/regexp/command
正規表現 regexp に一致するストリングを含む すべての行に対して command を実行します。このサブコマンドは、2 回のパスで実行されます。最初のパスでは、ed は与えられた範囲の行を検索し、正規表現 regexp に一致するストリングが含まれている すべての行をマークします。2 回目のパスでは、これらの行に対して command が実行されます。変数 _UNIX03 が YES に設定されている場合、コマンドによって変更された行は、マーク解除されます。!gGV、または vcommand として使用することはできません。command は、1 つまたはそれ以上の ed サブコマンドで構成され、最初のそれは g サブコマンドと同じ行になければなりません。複数行コマンド・リストのすべての行は、最後の行以外は、円記号 (¥) で終わっていなければなりません。command が空の場合は、ed は それを p サブコマンドであると想定します。regexp に一致する行がない場合は、ed は現在行番号を変更しません。それ以外の場合は、command 内の最後のサブコマンドによって 設定されたものになります。regexp は、スラッシュ (/) で区切る代わりに、スペースまたは改行以外の任意の文字で区切ることができます。
H
エラーが発生したときに、より詳しい説明のメッセージを 表示するように ed に要求します。ed がすでに詳しい説明のメッセージを出力している場合 は、H は簡潔なエラー・メッセージに戻ります。通常は、ed? を表示することによって エラー・メッセージを示します。このサブコマンドで詳しい説明のエラー・メッセージを オンにすると、ed は最新の ? に対する詳しい説明メッセージも表示します。
h
最後に起きたエラーの簡単な説明を提供します。これによって現在行番号は変更されません。
.i
a サブコマンドと同様の働きをしますが、指定されたアドレスの行のed がテキストを 置く点が異なります。有効なアドレスの範囲は、行 1 から $ (最後の 行) までです。ed は、現在行番号を、最後に挿入された行に設定します。変数 _UNIX03 が YES に設定されている場合、 アドレス 0 は、このサブコマンドに対して有効となり、アドレス 1 が指定された場合と同じように解釈されます。
.,.+1j
範囲内の複数行を、1 つの行に結合します。正確に言うと、j コマンドは、指定されたアドレスの範囲から改行文字を (最後の改行文字を 除いて) すべて除去します。ed は、現在行番号を、結合された結果の行に設定します。
.kx
指定されたアドレスの行をマーク名 x でマークします。マーク名はアルファベットの小文字 1 文字です。これによって、マークされた行を構成 'x で 参照することができます。これは、バッファーへの変更とは関係なく 常に同じ行を参照しているため、絶対アドレスと呼ばれます。
.,.l
指定されたアドレスの範囲の行を表示し、出力不能 (制御) 文字は見えるようにして表示します。各行の終わりには、「$」文字のマークが付きます。「IEEE Std 1003.1-2001, Table 5-1, Escape Sequences and Associated Actions」の『Base Definitions』のボリュームにリストされている文字 (「¥¥」、「¥a」、「¥b」、「¥f」、「¥r」、「¥t」、「¥v」) は、対応するエスケープ・シーケンスとして出力されます。ただし、上記の表の「¥n」は適用されません。変数 _UNIX03 が YES に設定されている場合、テキスト内の「$」文字は、前に円記号を付けて出力されます。ed は、現在行を、このようにして表示された最後の行に設定します。このサブコマンドは、他の大部分のコマンドに追加することができます。これによって、それらのサブコマンドの結果をチェックすることができます。
.,.ma
指定されたアドレスの行を、アドレス a で与えられた行の 直後の点に移動します。アドレス a は、指定されたアドレスの範囲の行の中に あってはなりません。アドレス a0 の場合は、ed は行をバッファーの最初に移動します。移動された最後の行が、新しい現在行になります。
.,.n
指定されたアドレスの行を p コマンドと同様の方法で 表示しますが、ed は行番号とタブ文字を 各行の先頭に置きます。表示された最後の行が、新しい現在行になります。n は、任意のサブコマンド (EefQrw、または ! を除く) に追加することができます。したがって、サブコマンドの結果をチェックすることができます。
P
サブコマンドのプロンプトがすでにオンになっていなければ、オンにします。ed コマンド行に –p prompt オプションを 指定した場合、別のサブコマンドが入力可能になったときに、edprompt ストリングを表示します。–p オプションを入れなかった場合は、ed はプロンプト として * 文字を使用します。サブコマンド・プロンプトが現在オンになっている場合 は、P を出すとオフになります。
.,.p
指定されたアドレスの行を表示 (出力) します。表示された最後の行が、新しい現在行になります。p は、ほとんどのサブコマンドに追加することができます。したがって、サブコマンドの結果をチェックすることができます。

p は、どの サブコマンド (EefQrw、または ! を除く) に追加することもできます。したがって、サブコマンドの結果をチェックすることができます。

Q
バッファーの変更をチェックしないで、無条件に終了します。
q
エディターを終了します。バッファーを最後に保管してから後で変更し、終了しようとした場合は、ed は警告を出します。q サブコマンドをもう一度入力すると、保管されていない変更があっても終了することができます。
$r [file]
file の内容を、バッファーの指定されたアドレスの行の後に 読み込みます。ed コマンド (例えば、-B または -W オプション) で指定したテキスト変換が使用されます。アドレスが 0 の場合は、ed はテキストをバッファーの最初の行の前に置きます。file を指定しなかった場合は、ed は 記憶されたファイル名を使用します。記憶されたファイル名が存在しない場合は、file が新しい記憶された名前になります。もし file が現行の文字セットで 無効なバイトを持っていれば、それは消去文字で置き換えられます。

r サブコマンドは、–s オプションが 指定されていない限り、file から読み取ったバイト数を 表示します。ファイルから読み取った最後の行が、新しい現在行になります。file! で置き換えられた場合は、その行の残りはシェル・コマンド行とみなされ、その出力が読み取られます。

.,.s/regexp/new/[flags]
正規表現 regexp に一致するストリングを、指定された範囲の行の中で検索します。通常、s サブコマンドは、各行の中の一致する最初のストリングを new で置き換えます。s サブコマンドは、現在行を、最後に置き換えた行に設定します。ed がこのような置き換えを行わなかった場合は、ed はそれをエラーとみなします。
flags には、以下のいずれか 1 つを指定できます。
n
その行の最初に一致したストリングではなく、n 番目の ストリングを置き換えます。
g
各行の最初に一致したストリングだけではなく、すべての 一致ストリングを置き換えます。
l
新しい現在行を l サブコマンドの形式で表示します。
n
新しい現在行を n サブコマンドの形式で表示します。
p
新しい現在行を p サブコマンドの形式で表示します。
サブコマンドの各部分を分離するために、/ の代わりに、スペースまたは改行以外の 任意の単一の出力可能文字を使用することができます。ただし、そのサブコマンドのすべての部分を区切るために 同一の文字を使用する必要があります。末尾の区切りは 省略することができます。
new ストリングに改行を入れるには、改行の直前に ¥ を置きます。これは、1 行を 2 行に分割する ためのよい方法です。new% 文字だけで構成されている場合 は、s は前回の snew ストリングを使用します。変数 _UNIX03=YES が設定されており、前に s コマンドがなかった場合、この方法で % を使用するとエラーになります。&new の中のどこかに現れた場合は、ed はそれを regexp に一致する テキストで置き換えます。new にリテラルのアンパーサンド記号またはパーセント記号を入れたい場合は、& または % 文字の前に円記号 (¥) を置いてください。
.,.ta
指定されたアドレスの行を、アドレス a で指定された行の にコピーします。アドレス a は、指定されたアドレスの行範囲の中に あってはなりません。アドレス a0 の場合は、ed は 行をバッファーの最初にコピーします。現在行は、コピーされた最後の行に設定されます。
u
バッファーを変更した最後のサブコマンドの影響をロールバックします。 u によってバッファーの変更をロールバックすることができるのは、次のサブコマンドです。acdgGijmrstvV、および (もちろん) u。このことは、u を繰り返し入力すると、最新の変更を前と後に切り替えられることを意味しています。このサブコマンドは、現在行番号を、やり直されるサブコマンドが 開始される直前の値に設定します。
1,$V/regexp/
G サブコマンドと同様ですが、このサブコマンドは与えられた正規表現に一致しない 行のみが 編集のチャンスを与えられるという点が異なります。
1,$v/regexp/commands
g (グローバル) コマンドと同様ですが、ed は 与えられた正規表現に一致しない 行に のみ commands を適用するという点が異なります。
1,$W [file]
w サブコマンドと同様ですが、このコマンドは、ファイルがすでに存在している場合、与えられた file にデータを追加するという点が異なります。
1,$w [file]
バッファー内の指定された行を、指定された file ファイルに書き込みます。ed コマンド (例えば、-B または -W オプション) で指定したテキスト変換が使用されます。これによって現在行は変更されません。file を指定しなかった場合は、ed は 記憶されたファイル名を使用します。記憶されたファイル名がない場合は、file が 新しい記憶された名前になります。出力ファイルが存在しない場合 は、ed はそれを作成します。ed は、–s オプションが指定されていない限り、書き込んだ文字数を表示します。
X
暗号鍵を入力するようにというプロンプトが出されます。これ以降のすべての erw サブコマンドは、ファイルから読み取るテキストおよび ファイルに書き込むテキストを、暗号化するためにあるいは暗号化解除するために、このキーを使用します。暗号化をオフにするには、X サブコマンドを出し、暗号鍵を求めるプロンプトに対して <Return> を押します。
!command
ユーザーが選んだコマンド・インタープリターに 対して command が入力されたかのように実行します。command% 文字が含まれている場合は、ed はそれを現行の記憶されたファイル名で置き換えます。サブコマンドにリテラルの % を入れたい場合は、その文字の直前に円記号 (¥) を置いてください。特殊な場合として !! と入力すると、直前の command が再実行されます。
$=
指定されたアドレスの行番号が表示されます。これによって現在行は変更されません。
.=
現在行の番号が表示されます。
.+1.,.+1
明示サブコマンドを与えないで、ゼロ、1 つ、または 2 つのアドレスを指定すると、ed はアドレッシングされた行を、最後の印刷サブコマンド (pl、または n) のモードで表示します。これにより、現在行番号が、表示された最後の行に設定されます。

  1. ed 行指向テキスト・エディターを使用してファイルを編集または表示するには、以下のコマンドを発行します。
    ed myFile
  2. 次のことを前提として、ed 行指向ファイルテキスト・エディターを使用して UTF-8 文字が含まれるファイルを編集または表示するには、以下のコマンドを発行します。
    • テキスト・ファイルはタグ付けされておらず、そのテキスト・ファイルをタグ付けしたり、自動変換を有効にしたりする予定がない。
    • タグを変更できない (例えば、タグ付けされていない public テキスト・ファイルまたは読み取り専用のテキスト・ファイルを表示しているなど)。
    この場合は、以下のコマンドを発行します。
    ed -W filecodeset=UTF-8,pgmcodeset=IBM-1047 myUtf8File
  3. ed 行指向テキスト・エディターを使用して EBCDIC 文字が含まれるファイルを編集または表示するには、以下のコマンドを発行します。ただし、自動変換が有効にされているが、ファイルが ASCII として誤ってタグ付けされていることを前提とします。
    ed -B myMisTaggedFile

環境変数

ed は、以下の環境変数を使用します。
COLUMNS
端末の幅が列の数で入っています。 ed は、そこで行を折り返します。これが設定されていない場合は、ed は、TERMINFO データベース からの適切な値を使用します。また、それが使用可能でない場合は、デフォルトの 80 を 使用します。
HOME
ホーム・ディレクトリーのパス名が入っています。
SHELL
現行シェルの絶対パス名が入っています。
TMPDIR
一時ファイルに使用されているディレクトリーのパス名。それが設定されていない場合は、ed/tmp を 使用します。
_TEXT_CONV
コマンドのテキスト変換情報が含まれます。-B オプション、あるいは filecodeset または pgmcodeset オプション (-W option) のいずれかが指定されている場合、テキスト変換情報は使用されません。テキスト変換について詳しくは、z/OS UNIX シェル・コマンドのテキスト変換を制御するを参照してください。
_UNIX03
このコマンドでの _UNIX03 の効果について詳しくは、UNIX03 用に変更されたシェル・コマンドを参照してください。

ファイル

ed は、以下のファイルを使用します。
/tmp/e*
これは、ページング・ファイル です。ここには、編集しているファイルの コピーが保持されています。一時ファイル用のディレクトリーは、環境変数 TMPDIR を使用して変更することができます。
ed.hup
ed がハングアップ信号を受信 (または端末の切断を検出) し、現行バッファーが最後の書き込みの後に変更されている場合、ed は現行バッファーを現行ディレクトリー内の ed.hup に書き込もうとします。この書き込みが失敗した場合、ed は $HOME ディレクトリー内の ed.hup に現行バッファーを書き込もうとします。

ローカライズ

ed は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_COLLATE
  • LC_CTYPE
  • LC_MESSAGES
  • LC_SYNTAX
  • NLSPATH

詳しくは、ローカライズを参照してください。

終了値

0
正常終了
1
以下のいずれかによる失敗。
  • 指定されたアドレスの行は範囲外である
  • 認められるのは 1 つのファイル名のみである
  • 行テーブル用のスペースがない
  • 一時ファイル・エラー
  • 正規表現の構成が正しくない
  • 記憶された正規表現がない
  • ファイル読み取りエラー
  • メモリー不足
  • 無効なコマンド
  • コマンド接尾部は許されていない
  • 正規表現に対する一致が見つからなかった
  • サブコマンドのアドレスの数が正しくない
  • サブコマンドの後に十分なスペースがない
  • 名前が長すぎる
  • 名前の形式が正しくない
  • サブコマンドのリダイレクトは許可されていない
  • 限定シェル
  • 記憶されていないファイル名
  • マーク名は小文字でなければならない
  • マーク名が定義されていない
  • m および t サブコマンドには宛先アドレスが必要である
  • m および t では宛先はソースにまたがることはできない
  • gvG、または V の中では、サブコマンドは認められない。
  • x サブコマンドが X (大文字) になった
  • グローバル・コマンドが長すぎる
  • 書き込みエラー (ディスク・スペースがない)
  • コード・セットが無効である
  • 自動変換をオフにできなかった
  • 要求されたテキスト変換を実行できなかった
2
使用法エラー。

メッセージ

いくつかのエラー・メッセージが発行されるのは、 、ed? を表示した後 に h または H サブコマンドが使用された場合だけです。以下の エラー・メッセージが出される可能性があります。

m および t では、出力先はソースにまたがることはできない
宛先アドレスは、m または t によって 移動またはコピーされる行の範囲に含まれていてはなりません。
グローバル・コマンドが長すぎる
グローバル命令 (g または v) の長さには 制限があります。この制限については、『制限』を参照してください。
m and t require destination address
m または t サブコマンドの後には、どこにテキストを移動またはコピーしたいかを示すアドレスが続かなければ なりません。このアドレスが省略されています。
記憶されていないファイル名
記憶されたファイル名を使用するサブコマンドを 実行しようとしました (例えば、出力ファイル名を指定せずに、書き込みのために w を使用しました)。しかし、現在は記憶されたファイル名がありません。ファイル名を指定して、サブコマンドをもう一度実行してください。
限定シェル
コマンド行では限定された形式の ed を起動しましたが、制限付きエディターでは認められないアクション (! サブコマ ンド) を実行しようと しました。
一時ファイル・エラー
ディスク上のスペースがなくなったか、または一時ファイル内に保管されているページ・ファイルに 関係のある他のエラーが発生しました。
Warning: file not saved
現行ファイルの編集を終了するために サブコマンド (例えば、q または新規ファイルを 編集するために e) を入力しました。しかし、それは最後に保管してから変更されています。ed は、終了する前に ファイルを保管することを勧めています。そうしないと、最新の変更が失われます。ファイルを保管するためには、w コマンドを使用してください。本当に最新の変更を 保管する必要がない場合は、終了するためには q を、または、新しいファイルを編集するためには e を使用してください。
?file
file を開くかまたは作成しようとしたときに、エラーが発生しました。これは、er、および w サブコマンドに 適用されます。
?
不特定のエラーが発生しました。詳細が必要であれば、h または H サブコマンドを 使用してください。ed への入力がワークステーションからではなく スクリプトから来る場合は、エラーが発生すると ed は 終了します。

制限

ed には、1 行当たり 1024 バイト、ファイル当たり 28000 行という制限があり ます。NUL ('¥0') 文字は認められていません。グローバル・コマンドの最大長は、改行を含め 256 文字です。

移植性

POSIX.2, X/Open 移植性ガイド, UNIX システム.

アドレス < および >–B–b、 および –W オプション、および W および X サブコマンドは POSIX 標準の拡張です。

関連情報

awkdiffenvexgrepsedvi

regexp の詳細は、正規表現 (regexp)を 参照してください。