ed または red コマンド
目的
テキスト・ファイルの行エディターです。
構文
説明
ed コマンドは行編集プログラム ed エディターを始動します。 このプログラムは一度にファイルを 1 つだけ処理するもので、ファイルを一時編集バッファーにコピーして、そのコピーに対して変更を行います。 ed エディターは、edit エディター、 ex エディター、 vi エディターも含まれているエディター・ファミリーに属しています。ed エディターは、ユーザーが指定する変更をバッファー内で行います。 ed エディターは、 write (w) サブコマンドを使用しない限り、 ファイルそのものの変更は行いません。
ed コマンドで ed エディターを始動する場合、 編集したいファイルの名前を指定できます。 これは e サブコマンドでも可能です。ed コマンドが新しいファイルをバッファーに読み取ると、そのファイルの内容がバッファーの前の内容に入れ代わります。
red コマンドは、ed コマンドの制限付きバージョンで、制限付きシェル (rsh) と一緒に使用されます。 red コマンドでは、現行ディレクトリー、 または /tmp ディレクトリー内にあるファイルのみ編集できます。 ! サブコマンドは使用できません。
ed エディター・サブコマンドは、0 個、1 個、または 2 個のアドレスから構成され、その後ろに 1 文字のサブコマンド、続いて、そのサブコマンドのオプションのパラメーターが置かれます。 アドレスはバッファー内の 1 行または複数行を指定します。 どのサブコマンドもデフォルト・アドレスを持っているので、ほとんどの場合アドレスを指定する必要はありません。
バッファー内の別の行をアドレス指定しない限り、ed エディターでは現在行以外は編集できません。 データの移動やコピーは行単位でのみ可能です。 ed エディターは大きなファイルを編集する場合や、シェル・プログラム内で編集を行う場合に便利です。
ed エディターは次の 2 つのモードのいずれかで作動します。
項目 | 説明 |
---|---|
コマンド・モード | コマンド・モードでは、ed エディターはサブコマンドを認識して実行します。 ed エディターの開始時はコマンド・モードになっています。 . (ピリオド) を入力してから Enter を押して、 コマンド・モードになっているかどうか確認してください。 |
テキスト入力モード | テキスト入力モードでは、ed エディターによってテキストをファイル・バッファー内に入力できますが、 サブコマンドは認識されません。 aサブコマンド、c サブコマンド、または i サブコマンドを使用して、テキスト入力モードに入ります。 テキスト入力モードを終了して、コマンド・モードに戻るには、 行の始めに . (ピリオド) だけを入力します。 テキスト入力モードのままでバッファーに . (ピリオド) を入れるには、 1 文字に続けて . (ピリオド) を入力します。 次に、テキスト入力モードを終了し、 s サブコマンドでその文字を除去します。 |
次に、ed エディターの上限を列挙します。
- 各ファイル名には、64 文字まで使用できます。
- 各グローバル・サブコマンド・リストには、 256 文字まで使用できます。
- バッファー・サイズは、128,000 文字です。注: バッファーには元のファイルと編集情報が入ります。
最大行数は、使用できるメモリーの量によって異なります。 最大ファイル・サイズは、使用可能な物理データ・ストレージ (ディスクまたはテープ・ドライブ) の量、 またはユーザー・メモリーで許可される最大行数によって異なります。
フラグ
パターン・マッチング
ed エディターは、パターン文字列を作成するために正規表現 (RE) として使用できる特殊パターン・マッチング文字の限定フォーマットをサポートしています。 これらのパターンをアドレスで使用して行を指定したり、一部のサブコマンドで使用して行の一部を指定することができます。
正規表現
次の正規表現は、単一の文字または照合エレメントと次のように突き合わせます。
項目 | 説明 |
---|---|
Character | Character そのものと突き合わせます。 通常の文字 (特殊パターン・マッチング記号以外の) を指定することができます。 |
. | 改行文字を除く任意の 1 文字と一致します。 |
[String] | 文字列内の任意の 1 文字と突き合わせます。ある種のパターン・マッチング文字は、大括弧で囲むと次のような特別な意味になります。
|
パターンの形成
次の規則は、正規表現 (RE) からパターンを形成する方法を示しています。
- 単一の通常文字から構成されている RE は、 文字列内のそれと同じ文字と一致することになります。
- RE でそのうしろに * (アスタリスク) が付いている場合には、
* (アスタリスク) の前にある文字が 0 回以上発生する場合と一致することになります。
例えば、以下のパターンは、
次のどの文字列にも一致しますが、ab*cd
次の文字列とは一致しません。acd abcd abbcd abbbcd
どのような選択肢があっても、左端を基準にして最も長いマッチング文字列が選択されます。例えば、次の文字列の場合、abd
パターン .* は 122333444 と一致し、パターン .*3 は 122333 と一致し、パターン .* 2 は 122 と一致することになります。122333444
- 後に次のものが続く RE は、次のように一致します。
数字 m と n は、0 以上 255 以下の整数でなければなりません。 どのような選択肢が存在しても、このパターンは、できる限り多くの該当する文字と一致します。
項目 説明 ¥{m¥} その RE と一致する m 個の文字と完全に 一致します。 ¥{m,¥} その RE と一致する m 個以上 の文字と一致します。 ¥{m,n¥} その RE と一致する m 個以上 n 個以下の任意の数の 文字と一致します。 - 同じ文字シーケンスを含んでいる文字列と一致するパターンに、 RE を組み合わせることができます。例えば、AB¥*CD は文字列 AB*CD と一致し、[A-Za-z]*[0-9]* は、数字の任意の組み合わせ (ない場合も含む) が後に続く、英字の任意の組み合わせ (ない場合も含む) を含むすべての文字列と一致します。
- 文字シーケンス ¥(Pattern¥) がマークするサブパターンと一致する文字列は、 記号で囲まれていない場合にそのシーケンスが一致する文字列と同じです。
- 文字シーケンス ¥Number は、
パターン内でサブパターンが既に一致した同じ文字列 (上記の規則を参照) に一致します。Number パラメーターのパターンは数字を表します。
パターン ¥Number は、Number パラメーターで指定したサブパターンのオカレンス (左から右へ数える) に一致する文字列と一致します。
例えば、以下のパターンは、
文字列 ABCBA と一致します。 サブパターンはネストできます。¥(A¥)¥(B¥)C¥2¥1
一致するパターンの制限
パターンは、行の最初のセグメント、最後のセグメント、または行全体と一致するように制限することができます。 null パターン // (2 個のスラッシュ) は、直前のパターンを繰り返します。
行の最初のセグメントとの一致
^Pattern パラメーターは、行の最初の文字位置で始まる文字列だけに一致します。
行の最後のセグメントとの一致
Pattern$ パラメーターは、行の最後の文字 (改行文字以外) で終わる文字列だけに一致します。
行全体の一致
^Pattern$ パラメーターは、行全体が一致する制限付きでパターンを指定します。
行のアドレッシング
ed エディターには、3 種類のアドレスが使われます。行番号アドレス、現在行からの相対アドレス、およびパターン・アドレスです。現在行 (通常は、サブコマンドの影響を受ける最後の行) は、バッファー内の参照点です。
行のアドレッシングでは、次の操作を行うことができます。
- 新しい現在行の指定
- アドレス指定した行の表示
- コマンドを所定の行で実行
アドレスを受け入れないサブコマンドは、アドレスの存在をエラーと見なします。 アドレスを受け入れるサブコマンドは、指定されたアドレスまたはデフォルト・アドレスの、 どちらかを使用できます。 受け入れ範囲を超えるアドレスが指定された場合、コマンドは最後 (一番右) のアドレスを使用します。
大抵の場合、コンマ (,) はアドレスを区切ります (2,8 のように)。セミコロン (;) もアドレスを区切ることができます。 アドレス間にセミコロンを入れると、ed エディターは現在行を最初のアドレスに設定し、2 番目のアドレスを算出します (例えば、検索開始行を設定する場合)。 アドレスの組で、最初のアドレスは、2 番目のアドレスよりも小さい数値でなければなりません。
行番号と記号アドレスを使用すると、次のタスクを実行することができます。
- 現在行のアドレッシング
- 行番号によるアドレッシング
- 先頭行の前の行のアドレッシング
- 最終行のアドレッシング
- アドレッシングした行の上の行のアドレッシング
- アドレッシングした行の下の行のアドレッシング
- 先頭行から最終行までのアドレッシング
- 現在行から最終行までのアドレッシング
- 行のグループのアドレッシング
- 指定したパターンが入っている行の次行のアドレッシング
- 指定したパターンが入っている行の前行のアドレッシング
- マークした行のアドレッシング
現在行のアドレッシング
. (ピリオド) は、現在行をアドレス指定します。. (ピリオド) は、ほとんどの ed エディター・サブコマンドのデフォルトであり、指定する必要はありません。
行番号によるアドレッシング
バッファーの指定された行をアドレス指定するには、次のように入力します。
Number
この場合、Number パラメーターは行番号を表します。 次に例を示します。
2253
これにより、行番号 2253 が現在行としてアドレス指定されます。
先頭行の前の行のアドレッシング
バッファーの先頭行の前の行をアドレス指定するには、次のように入力します。
0
最終行のアドレッシング
バッファーの最終行をアドレス指定するには、次のように入力します。
$
アドレッシングした行の上の行のアドレッシング
現在行よりも指定した行数だけ上にある行をアドレス指定するには、次のように入力します。
-Number
この場合、Number パラメーターは、アドレス指定したい行が現在行よりも何行上にあるかを示します。 次に例を示します。
-5
現在行の 5 行上にある行が、現在行としてアドレス指定されます。
また、- のみを指定して現在行の真上にある行をアドレス指定することもできます。- には累積効果があります。例えば、アドレス - (2 つのハイフン) を指定すると、現在行の 2 行上の行がアドレス指定されます。
アドレッシングした行の下の行のアドレッシング
現在行から指定した行数だけ下にある行をアドレス指定するには、次のように入力します。
+Number
この場合、Number パラメーターは、アドレス指定したい行が現在行から何行下にあるかを示します。
+ (正符号) はオプションです。
次に例を示します。
+11
現在行から 11 行下にある行が、現在行としてアドレス指定されます。
また、+ のみを指定して、現在行の真下にある行をアドレス指定することもできます。+ には累積効果があります。例えば、アドレス + + (2 つの正符号) を指定すると、現在行から 2 行下にある行がアドレス指定されます。
先頭行から最終行までのアドレッシング
,
, (コンマ) は、アドレスの組 1,$ (先頭行から最終行まで) を表します。先頭行が現在行になります。
現在行から最終行までのアドレッシング
;
; (セミコロン) は、アドレスの組 .,$ (現在行から最終行まで) を表します。
行のグループのアドレッシング
FirstAddress,LastAddress
3421,4456
これにより、行 3421 から 4456 までがアドレス指定されます。行 3421 が現在行になります。
指定したパターンが入っている行の次行のアドレッシング
/Pattern/
/Austin, Texas/
これにより、Austin, Texas が入っている行の次の行が現在行としてアドレス指定されます。
指定したパターンが入っている行の前行のアドレッシング
パターンに一致する値が入っている前行をアドレス指定するには、次のように入力します。
?Pattern?
?Austin, Texas?
これにより、Austin, Texas が入っている行の前の行が、現在行としてアドレス指定されます。
マークした行のアドレッシング
k サブコマンドでマークした行をアドレス指定するには、 次のように入力します。
'x
'c
これにより、k サブコマンドで c とマークした行がアドレス指定されます。
サブコマンド
ed エディター・サブコマンドを使用すると、次の操作を行うことができます。
大抵の場合、1 行に入力できる ed エディター・サブコマンドは 1 つだけです。ただし、 l (list) サブコマンドと、 p (print) サブコマンドは、 e (edit)、 E (Edit)、 f (file)、 q (quit)、 Q (Quit)、 r (read)、 w (write)、 ! (オペレーティング・システム・コマンド) を除く、 いずれのサブコマンドにも追加することができます。
e、f、r、および w サブコマンドでは、ファイル名をパラメーターとして指定できます。 ed エディターは、サブコマンドに使用された最後のファイル名をデフォルト・ファイル名として格納します。 ファイル名を指定せずに e、E、 f、r、w のいずれかのサブコマンドを次に使用すると、デフォルトのファイル名が使用されます。
ed エディターは、2 つのメッセージ、つまり、? (疑問符) または ?File、のいずれかでエラー状態に応答します。ed エディターは、割り込み信号 (Ctrl-C キー・シーケンス) を受信すると、?を表示してコマンド・モードに戻ります。 ed エディターは、ファイルを読み取ると、ASCII null 文字および最後の改行文字の後のすべての文字を破棄します。
ファイルの編集
ed エディター・サブコマンドを使用すると、以下のタスクを実行できます。
- テキストの追加
- テキストの変更
- テキストのコピー
- テキストの削除
- テキストの表示
- 行の結合と分割
- 一括変更
- テキストのマーク付け
- テキストの移動
- テキストの保存
- テキストの検索
- テキストの置換
- テキスト変更の取り消し 注: 次の ed サブコマンドの説明では、デフォルトのアドレスは括弧で囲んで示しています。この括弧は入力しないでください。 (ピリオド) のアドレスは、現在行を示します。他の空の行の 1 桁目にある . (ピリオド) は、コマンド・モードに戻るための信号です。
テキストの追加
項目 | 説明 |
---|---|
(.)a [l] [n] [p] Text. | a (append) サブコマンドは、アドレス指定された行の後 のバッファーにテキストを追加します。
a サブコマンドは、テキストが最後に挿入された行を現在行に設定します。行が挿入されなかった場合は、アドレス指定された行が現在行になります。アドレス 0 を指定すると、バッファーの先頭にテキストが追加されます。
追加したテキストを表示する場合は、l (list)、n (number)、または p (print) オプション・サブコマンドを入力します。 テキストを入力するときは、各行の終わりに Enter キーを押してください。各行の終わりに Enter を押さないと、行に文字を入力した後に、ed エディターによってカーソルが自動的に次の行に移動されます。 ed エディターは、画面に占める行数には関係なく、Enter を押す前に入力されたものをすべて 1 行として処理します。 テキストをすべて入力した後に改行の先頭で . (ピリオド) を入力します。 |
(.)i [l] [n] [p]Text. | i (insert) サブコマンドは、アドレス指定された行の前 にテキストを挿入し、最後にテキストが挿入された行を現在行に設定します。
挿入がない場合、i サブコマンドはアドレス指定された行を現在行に設定します。
このサブコマンドには 0 アドレスは使用できません。
挿入したテキストを表示したい場合は、 l (list)、n (number)、 p (print) オプション・サブコマンドのいずれかを入力します。 テキストを入力するときは、各行の終わりに Enter キーを押してください。各行の終わりに Enter を押さないと、行に文字を入力した後に、ed エディターによってカーソルが自動的に次の行に移動されます。 ed エディターは、画面に占める行数には関係なく、Enter を押す前に入力されたものをすべて 1 行として処理します。 テキストをすべて入力した後に改行の先頭で . (ピリオド) を入力します。 注: i サブコマンドと、
a サブコマンドとの違いは、
テキストの挿入位置のみです。
|
現在行の後にテキストを追加する
- 次のサブコマンドを入力します。
この場合、l、 n、 および p は、 追加されたテキストを表示するオプション・サブコマンドです。a[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
現在行の前にテキストを追加する
- 次のサブコマンドを入力します。
この場合、l、 n、 および p は、 追加されたテキストを表示するオプション・サブコマンドです。i[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
アドレス指定した行の後にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、挿入したテキストの前の行の行番号です。 l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。Addressa[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
アドレス指定した行の前にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、挿入したテキストの後の行の行番号です。 l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。Addressi[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
検索パターンが入っている行の後にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address は、Pattern パラメーターで指定したパターンが検索される行の範囲を指定するオプション・パラメーターです。 Pattern パラメーターは、 文字列または正規表現です。Address パラメーターを省略すると、 ed エディターはパターンが入っている行を探してファイル全体を検索します。l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。[Address]g/Pattern/a[l][n][p]
- 円記号を入力します。
¥
- テキストを入力します。追加したテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。 コマンド内で指定したパターンが入っている各行の後に、入力したテキストが追加されます。¥
- Enter を押すと、コマンド・モードに戻ります。
検索パターンが入っている行の前にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address は、Pattern パラメーターで指定したパターンが検索される行の範囲を指定するオプション・パラメーターです。 Pattern パラメーターは、 文字列または正規表現です。Address パラメーターを省略すると、 ed エディターはパターンが入っている行を探してファイル全体を検索します。l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。[Address]g/Pattern/i[l][n][p]
- 円記号を入力します。
¥
- テキストを入力します。追加したテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。 コマンド内で指定したパターンが入っている各行の前に、 入力したテキストが追加されます。¥
- Enter を押すと、コマンド・モードに戻ります。
検索パターンが入っていない行の後にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address は、 Pattern パラメーターで指定したパターンが入っていない行を探すため検索される行の、 範囲を指定するオプション・パラメーターです。 Pattern パラメーターは、 文字列または正規表現です。Address を省略すると、ed エディターはパターンが入っていない行を探すためファイル全体を検索します。l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。[Address]g/Pattern/a[l][n][p]
- 円記号を入力します。
¥
- テキストを入力します。追加したテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。 コマンド内で指定したパターンが入っていない各行の後に、入力したテキストが追加されます。¥
- Enter を押すと、コマンド・モードに戻ります。
検索パターンが入っていない行の前にテキストを追加する
- 次のサブコマンドを入力します。
この場合、Address は、 Pattern パラメーターで指定したパターンが入っていない行を探すため検索される行の、 範囲を指定するオプション・パラメーターです。 Pattern パラメーターは、 文字列または正規表現です。Address パラメーターを省略すると、ed エディターはパターンが入っていない行を探してファイル全体を検索します。 l、n、および p オプション・サブコマンドは、追加されたテキストを表示します。[Address]g/Pattern/i[l][n][p]
- 円記号を入力します。
¥
- テキストを入力します。追加したテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。 コマンド内で指定したパターンが入っていない各行の前に、入力したテキストが追加されます。¥
- Enter を押すと、コマンド・モードに戻ります。
テキストの変更
項目 | 説明 |
---|---|
(.,.)c [l] [n] [p]Text. | c (change) サブコマンドは、置換対象としてアドレス指定された行を削除して、新しく入力された行と置き換えます。c サブコマンドは、
最後に入力された新しい行を現在行に設定します。
あるいは入力されていない場合は、削除されていない最初の行が現在行になります。
挿入したテキストを表示したい場合は、 l (list)、n (number)、 p (print) オプション・サブコマンドのいずれかを入力します。 新しいテキストを入力し、各行の終わりで Enter キーを押します。 新しいテキストをすべて入力したら、1 行ごとに . (ピリオド) を入力してください。 |
現在行のテキストを変更する
- 次のサブコマンドを入力します。
この場合、l、 n、 および p は、 変更されたテキストを表示するオプション・サブコマンドです。c[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
1 行または行範囲のテキストを変更する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、変更したい行または行範囲のアドレスです。 l、 n、 および p オプション・サブコマンドは、 変更されたテキストを表示します。Addressc[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
指定したパターンが入っている行のテキストを変更する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、 Pattern パラメーターで指定したパターンを検索したい、 行範囲のアドレスです。 l、 n、 および p オプション・サブコマンドは、 変更されたテキストを表示します。Addressg/Pattern/c[l][n][p]
- 円記号を入力します。
¥
- 新しいテキストを入力します。新しいテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。¥
- コマンド・モードに戻るには、Enter キーをもう一度押し、. (ピリオド) を入力してから、さらにもう一度 Enter を押します。
指定したパターンが入っていない行のテキストを変更する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、 Pattern パラメーターで指定したパターンを検索したい、 行範囲のアドレスです。 l、 n、 および p オプション・サブコマンドは、 変更されたテキストを表示します。Addressv/Pattern/c[l][n][p]
- 円記号を入力します。
¥
- 新しいテキストを入力します。新しいテキスト内で新しい行を始めるには、次のように円記号を入力し、
次に Enter を押します。¥
- コマンド・モードに戻るには、Enter キーをもう一度押し、. (ピリオド) を入力してから、さらにもう一度 Enter を押します。
テキストのコピー
項目 | 説明 |
---|---|
(.,.)(.,.) tAddress [p] [l] [n] | t (transfer) サブコマンドは、アドレス指定した行のコピーを、Address パラメーターで指定した行の後に挿入します。
t サブコマンドはアドレス 0 を受け入れてバッファーの先頭に行を挿入します。
t サブコマンドは、コピーされた最後の行を現在行に設定します。 転送されたテキストを表示したい場合は、l (list)、n (number)、または p (print) のオプション・サブコマンドを入力します。 |
現在行をコピーする
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、現在行のコピーを後ろに挿入したい行の行番号または記号アドレスです。l、 n、 および p オプション・サブコマンドは、 コピーされた行を表示します。tAddress[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
アドレスで指定した行をコピーする
- 次のサブコマンドを入力します。
この場合、LineNumber パラメーターは、コピーしたい行のアドレスです。また、DestinationAddress パラメーターは、コピーを後ろに挿入したい行です。 l、 n、 および p オプション・サブコマンドは、 コピーされた行を表示します。LineNumbertDestinationAddress[l][n][p]
- テキストを入力して Enter を押します。
- . (ピリオド) を入力してからもう一度 Enter を押すと、 コマンド・モードに戻ります。
指定したパターンが入っている行をコピーする
[Address]g/Pattern/t[DestinationAddress][l][n][p]
この場合、Address は指定したパターンを含む行を探すために検索する行の範囲を指定するオプション・パラメーターで、Pattern パラメーターは検索対象のテキスト、DestinationAddress はコピーしたテキストの前の行を表すオプション・パラメーターです。 l、 n、 および p オプション・サブコマンドは、 コピーされた行を表示します。
Address パラメーターを省略すると、 ed エディターはパターンが入っている行を探してファイル全体を検索します。DestinationAddress パラメーターを省略すると、現在行の後にコピーされたテキストが挿入されます。
指定したパターンが入っていない行をコピーする
[Address]v/Pattern/t[DestinationAddress][l][n][p]
この場合、Address は指定したパターンを含まない行を探すために検索する行の範囲を指定するオプション・パラメーターで、Pattern パラメーターはテキスト、DestinationAddress はコピーしたテキストの前の行を表すオプション・パラメーターです。 l、 n、 および p オプション・サブコマンドは、 コピーされた行を表示します。
Address パラメーターを省略すると、ed エディターはパターンが入っていない行を探してファイル全体を検索します。 DestinationAddress パラメーターを省略すると、現在行の後にコピーされたテキストが挿入されます。
テキストの削除
項目 | 説明 |
---|---|
(.,.)(.,.) d [l] [n] [p] | d (delete) サブコマンドは、アドレス指定した行をバッファーから除去します。
最後に削除された行の後の行が現在行になります。
削除された行がもともとバッファーの終わりにあった場合は、新しい最終行が現在行になります。
削除した結果を表示したい場合は、l (list)、n (number)、p (print) のオプション・サブコマンドのいずれかを入力します。 |
現在行を削除する
行または行範囲を削除する
Addressd[l][n][p]
この場合、Address パラメーターは、
削除する行の行番号または記号アドレスです。また、
l、
n、
および p は、
削除された行 (1 行または複数行) を表示するオプション・サブコマンドです。
指定したパターンが入っている行または行範囲を削除する
[Address]g/Pattern/d[l][n][p]
この場合、Address は、
検索したい行の行番号または記号アドレスを指定するオプション・パラメーターです。
Pattern パラメーターは、
検索したいテキストを表す文字列または正規表現です。Address パラメーターを省略すると、ed エディターは指定したパターンが入っている行を探してファイル全体を検索します。
l、
n、
および p オプション・サブコマンドは、
削除された行を表示します。
指定したパターンが入っていない行または行範囲を削除する
[Address]v/Pattern/d[l][n][p]
この場合、Address は、
検索したい行の行番号または記号アドレスを指定するオプション・パラメーターです。
Pattern パラメーターは、
検索したいテキストを表す文字列または正規表現です。Address パラメーターを省略すると、ed エディターは指定されたパターンが入っていない行を探してファイル全体を検索します。
l、
n、
および p オプション・サブコマンドは、
削除された行を表示します。
現在行からテキストを削除する
- 次のサブコマンドを入力します。
この場合、Pattern パラメーターは、 削除するテキストを表す文字列または正規表現です。s/Pattern
- パターンの最初のインスタンス を行から削除するには、
次のように入力します。
または//
パターンのすべてのインスタンス を行から削除するには、次のように入力します。
//g
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
選択した行内のテキストを削除する
- 選択する行範囲のアドレスを入力します (すべての行を選択する場合は、 このステップを省きます)。
- ステップ 4 の Pattern パラメーターで、
指定する行を選択するには、次のように入力します。
またはg
ステップ 4 の Pattern パラメーターで指定しない 行を選択するには、次のように入力します。
v
- 検索したいテキストを入力するには、次のサブコマンドを実行します。
この場合、Pattern パラメーターは検索したいテキストです。/Pattern/s
- 次のいずれかのコマンドを入力して、希望する削除を行います。選択した各行内で、Pattern パラメーターの最初のインスタンスを削除するには、次のように入力します。
選択した各行内で、Pattern パラメーターのすべてのインスタンスを削除するには、次のように入力します。///
選択された各行内で、Pattern パラメーターのオカレンスを指定した数だけ最初の方から削除するには、次のように入力します (この場合、Number パラメーターは整数です)。///g
Pattern パラメーターで選択した各行内で、OtherPattern パラメーターで指定した最初の文字列を削除するには、次のように入力します (この場合、OtherPattern パラメーターは、検索したいパターンです)。///Number
Pattern パラメーターで指定した各行内で、OtherPattern パラメーターのすべてのインスタンスを削除するには、次のように入力します。/OtherPattern//
Pattern パラメーターで指定した各行内で、OtherPattern のオカレンスを指定した数だけ最初の方から削除するには、次のように入力します (この場合、Number パラメーターは整数です)。/OtherPattern//g
/OtherPattern//Number
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
38,$g/tmp/s/gn
上記の例では、行 38 から最終行まで (38,$) のすべての行で tmp 文字列が検索され、この行範囲内の各行で tmp 文字列のすべてのインスタンス (/g) が削除されます。次に、テキストが削除された行とその行番号 (n) が表示されます。
g/rem/s///gl
上記の例では、 rem 文字列が入っているすべての行 (g) を探して、 ファイル全体が検索されます (アドレス・パラメーターを省略したため)。見つかった各行から rem 文字列のすべてのインスタンス (///g) が削除され、テキストが削除された行が、各行の印刷されない文字を含めて、表示されます (l)。
アドレス指定した行からテキストを削除する
- 次のサブコマンドを入力します。
Addresss/Pattern
注: Address パラメーターの後に s サブコマンドを指定します。この場合、Address パラメーターは、パターンを削除する行の行番号、行番号の範囲、または記号アドレスです。Pattern パラメーターは、削除するテキストを表す文字列または正規表現です。 - 各行からパターンの最初のインスタンス を削除するには、
次のように入力します。
または//
各行からパターンのすべてのインスタンス を削除するには、次のように入力します。//g
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
指定したパターンが入っている行からテキストを削除する
- 次のサブコマンドを入力します。
この場合、Address は、指定したパターンが入っている行の行番号、 行番号の範囲、または記号アドレスを指定するオプション・パラメーターです。 Pattern パラメーターは、 検索して削除するテキストを表す文字列または正規表現です。Address パラメーターを省略すると、ed エディターはパターンを探してファイル内のすべての行を検索します。[Address]g/Pattern/s
- パターンが入っている各行から、
パターンの最初のインスタンス を削除するには、次のように入力します。
または///
パターンが入っている各行から、パターンのすべてのインスタンス を削除するには、次のように入力します。///g
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
指定したパターンが入っている行から別のパターンを削除する
- 次のサブコマンドを入力します。
この場合、Address は、指定したパターンが入っている行の行番号、 行範囲、または記号アドレスを指定するオプション・パラメーターです。 SearchPattern パラメーターは、 変更したい行に入っているテキストを表す文字列または正規表現です。Address パラメーターを省略すると、ed エディターは指定したパターンを探してファイル内のすべての行を検索します。[Address]g/SearchPattern/s
- 削除するテキストを指定するには、次のように入力します。
/DeletePattern/
- 各行からパターンの最初のインスタンス を削除するには、
次のように入力します。
または/
各行からパターンのすべてのインスタンス を削除するには、次のように入力します。/g
注: サブコマンドの文字列全体は、次のようになります。[Address]g/SearchPattern/s/DeletePattern//[g]
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
1,.g/rem/s/tmp//l
上記の例では、先頭行から現在行 (1,.) まで、 rem 文字列が入ったすべての行 (g) を検索しています。検出した各行から tmp 文字列の最初のインスタンス (/) が削除され、テキストが削除された行が、各行の印刷されない文字を含めて、表示されます (l)。
指定したパターンが入っていない行から別のパターンを削除する
- 次のサブコマンドを入力します。
この場合、Address は、指定したパターンが入っている行の行番号、 行範囲、または記号アドレスを指定するオプション・パラメーターです。 SearchPattern パラメーターは、 変更したい行に入っていないテキストを表す文字列または正規表現です。Address パラメーターを省略すると、ed エディターは指定したパターンを探してファイル内のすべての行を検索します。[Address]v/SearchPattern/s
- 削除するテキストを指定するには、次のように入力します。
/DeletePattern/
- パターンの最初のインスタンス を削除するには、
次のように入力します。
または/
各行からパターンのすべてのインスタンス を削除するには、次のように入力します。
/g
注: サブコマンドの文字列全体は、次のようになります。[Address]v/SearchPattern/s/DeletePattern//[g]
- 削除した結果を表示したい場合は、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
1,.v/rem/s/tmp//l
上記の例では、先頭行から現在行 (1,.) まで、 rem 文字列が入っていないすべての行 (v) を検索しています。検出した各行から tmp 文字列の最初のインスタンス (/) が削除され、テキストが削除された行が、各行の印刷されない文字を含めて、表示されます (l)。
テキストの表示
項目 | 説明 |
---|---|
(.,.)l | l (list) サブコマンドは、アドレス指定した行を、
視覚的に明確なフォーマットで標準出力に書き出し、
文字 ¥¥¥、¥¥a、
¥¥b、¥¥f、
¥¥r、¥¥t、
および ¥¥v を、それに対応するエスケープ・シーケンスに書き出します。l サブコマンドは、印刷可能でない文字を 3 桁の 8 進数として書き出し、文字の各バイトの先頭に ¥ (円記号) を付けます (最上位のバイトを先頭にします)。
l サブコマンドは長い行を折り返します。¥ (円記号) / (スラッシュ) 改行文字シーケンスを書き込むと、折り返し点を指定することができます。 折り返しは 72 桁目で発生します。 $ (ドル記号) は、各行の終わりを示します。 l サブコマンドは、e、E、f、q、Q、r、w、 または ! サブコマンドを除き、 どの ed エディター・サブコマンドにも追加できます。 現在行番号は、最後に書き込まれた行のアドレスに設定されます。 |
(.,.)n | n (number) サブコマンドは、アドレス指定した行を表示しますが、各行の前に行番号とタブ文字 (ブランク・スペースとして表示) が付きます。 n は、最後に表示された行を現在行に設定します。 n サブコマンドは、 e、 f、 r、 w 以外の、 任意の ed エディター・サブコマンドに付加できます。 例えば dn サブコマンドは、現在行を削除し、 新しい現在行とその行番号を表示します。 |
(.,.)p | p (print) サブコマンドは、アドレス指定した行を表示し、最後に表示した行を現在行に設定します。 p サブコマンドは、 e、 f、 r、 w 以外の、 任意の ed エディター・サブコマンドに付加できます。 例えば dp サブコマンドは、現在行を削除し、新しい現在行を表示します。 |
(.)= | アドレスを指定しない場合、= (等号) サブコマンドは現在行の行番号を表示します。 アドレス $ を前に付けると、= サブコマンドはバッファー内の最終行の番号を表示します。 = サブコマンドは、現在行を変更しないため、 g サブコマンド、 または v サブコマンドには付加できません。 |
アドレス指定した行または行範囲を表示する
Addressp
この場合、Address パラメーターは、表示したい行の行番号または記号アドレスです。
アドレス指定した行または行範囲が画面に表示されます。行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
アドレス指定した行または行範囲を非印刷文字を含めて表示する
Addressl
この場合、Address パラメーターは、表示したい行の行番号または記号アドレスです。
アドレス指定した行または行範囲が非印刷文字も含めて画面に表示されます。 行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
アドレス指定した行または行範囲を、行番号を含めて表示する
Addressn
この場合、Address パラメーターは、表示したい行の行番号または記号アドレスです。
アドレス指定した行または行範囲が画面に表示されます。各行の行番号は、行の隣に表示されます。 行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っている行を表示する
Addressg/Pattern/p
この場合、Address パラメーターは行の範囲で、
Pattern パラメーターは検索したい文字列または正規表現です。
指定したパターンが入っている行または行範囲が、画面に表示されます。 行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っている行を、非印刷文字を含めて表示する
[Address]g/Pattern/l
この場合、Address は、行の範囲を指定するオプション・パラメーターで、
Pattern パラメーターは検索したい文字列または正規表現です。Address パラメーターを省略すると、ed エディターはファイル全体を検索します。
指定したパターンが入っている行または行範囲が、画面に表示されます。 非印刷文字も画面に表示されます。行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っている行を、行番号を含めて表示する
[Address]g/Pattern/n
この場合、Address は、行の範囲を指定するオプション・パラメーターで、
Pattern パラメーターは検索したい文字列または正規表現です。Address パラメーターを省略すると、ed エディターはファイル全体を検索します。
指定したパターンが入っている行または行範囲が、画面に表示されます。 各行の行番号は、行の隣に表示されます。 行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っていない行を表示する
[Address]v/Pattern/p
この場合、Address は、行の範囲を指定するオプション・パラメーターで、
Pattern パラメーターは検索したい文字列または正規表現です。Address パラメーターを省略すると、ed エディターはファイル全体を検索します。
指定したパターンが入っていない行または行範囲が、画面に表示されます。 行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っていない行を、非印刷文字を含めて表示する
[Address]v/Pattern/l
この場合、Address は、行の範囲を指定するオプション・パラメーターで、
Pattern パラメーターは検索したい文字列または正規表現です。Address パラメーターを省略すると、ed エディターはファイル全体を検索します。
指定したパターンが入っていない行または行範囲が、非印刷文字を含めて画面に表示されます。行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
検索パターンが入っていない行を、行番号を含めて表示する
[Address]v/Pattern/n
この場合、Address は、行の範囲を指定するオプション・パラメーターで、 Pattern パラメーターは検索したい文字列または正規表現です。Address パラメーターを省略すると、ed エディターはファイル全体を検索します。
指定したパターンが入っていない行または行範囲が、行番号と一緒に画面に表示されます。行範囲が長すぎて画面に表示しきれない場合、ed エディターは、アドレス指定した先頭行から画面に入るだけの行数を表示します。
行の結合と分割
項目 | 説明 |
---|---|
(.,.+1)j [l] [n] [p] | j (join) サブコマンドは、連続する行の間にある改行文字を除去して各行を結合します。アドレスを 1 つしか指定しないと、j サブコマンドは何も行いません。
結合された行を表示したい場合は、l (list)、 n (number)、または p (print) サブコマンドを入力します。 これらのサブコマンドはオプションです。 |
現在行と次行を結合する
アドレス指定した行を結合する
Addressj[l][n][p]
この場合、Address パラメーターは、1 つの行を形成する連続した行の集合で、
l、
n、
および p は、
結合された行を表示するオプション・サブコマンドです。
現在行を分割する
- 指定したパターンの後の現在行を分割するには、
次のサブコマンドを入力します。
この場合、Pattern パラメーターは、分割したい行の前にある文字列です。s/Pattern/Pattern¥
注: Pattern パラメーターで入力する 2 つの文字列は完全に同じでなければなりません。 - Enter を押します。
- 次のように円記号を入力します。
/
- 分割された行を表示するには、 次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
アドレス指定した行を分割する
- 指定したパターンの後のアドレス指定した行を分割するには、
次のサブコマンドを入力します。
この場合、Address パラメーターは分割したい行のアドレスで、Pattern パラメーターは分割したい行の前にある文字列です。Addresss/Pattern/Pattern¥
注: Pattern パラメーターで入力する 2 つの文字列は完全に同じでなければなりません。 - Enter を押します。
- 次のように円記号を入力します。
/
- 分割された行を表示するには、 次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
一括変更
項目 | 説明 |
---|---|
(1,$) g/Pattern/SubcommandList [l] [n] [p] | g (global) サブコマンドは、まず、Pattern パラメーターと一致するすべての行にマークを付けます。
パターンは固定文字列または正規表現のいずれかです。次にこのサブコマンドはマークされた各行を現在行に設定して、SubcommandList パラメーターを実行します。単一のサブコマンドまたは一連のサブコマンドの最初のサブコマンドは、g サブコマンドと同じ行に入力します。それに続くサブコマンドはそれぞれ別の行に入力します。
最終行を除いて、これらの行の末尾には ¥ (円記号) を付けてください。
SubcommandList パラメーターには、 a、 i、 および c サブコマンドと、 その入力を組み込むことができます。通常、SubcommandList パラメーターの最後のコマンドは入力モードを終了させる . (ピリオド) であれば、. (ピリオド) は省略できます。 SubcommandList パラメーターがない場合は現在行が表示されます。 SubcommandList パラメーターには、g、 G、 v、 または V サブコマンドを組み込むことはできません。 変更した結果を表示したい場合は、l (list)、n (number)、または p (print) サブコマンドのいずれかを入力します。これらのサブコマンドはオプションです。 注: g サブコマンドは、
v サブコマンドと同様、
パターンに一致するものを含まないすべての行に対して、
SubcommandList パラメーターを実行します。
|
(1,$) G/Pattern/ [l] [n] [p] | 対話型 G (Global) サブコマンドは、Pattern パラメーターに一致するすべての行にマークを付け、マークが付けられた最初の行を表示し、現在行をその行に設定して、サブコマンドを待ちます。
パターンは固定文字列または正規表現のいずれかです。 G サブコマンドは、a、 i、 c、 g、 G、v、 および V サブコマンドを受け入れません。サブコマンドが終了すると、G サブコマンドはマークが付けられた次の行を表示して、同様に処理を続けます。G サブコマンドは、改行文字を null のサブコマンドとして解釈します。 :& (コロン・アンパーサンド) があると、 G サブコマンドは前のサブコマンドを再実行します。 G サブコマンドを停止するには、Ctrl+C を押します。 変更した結果を表示したい場合は、l (list)、n (number)、または p (print) サブコマンドのいずれかを入力します。これらのサブコマンドはオプションです。 |
(1,$) v/Pattern/SubcommandList [l] [n] [p] | v サブコマンドは、Pattern パラメーターに一致するものを含んでいないすべての行に対して、SubcommandList パラメーター内のサブコマンドを実行します。
パターンは固定文字列または正規表現のいずれかです。 変更した結果を表示したい場合は、l (list)、n (number)、または p (print) サブコマンドのいずれかを入力します。これらのサブコマンドはオプションです。 v サブコマンドは、a、 i、 c、 g、 G、 および V サブコマンドを受け入れません。 注: v サブコマンドは、
g サブコマンド (パターンに一致するすべての行に対して、
SubcommandList パラメーターを実行する) を補足します。
|
(1,$) V/Pattern/ [l] [n] [p] | V サブコマンドは、Pattern パラメーターに一致しないすべての行にマークを付け、マークを付けた最初の行を表示し、現在行をその行に設定して、サブコマンドを待ちます。パターンは固定文字列または正規表現のいずれかです。 変更した結果を表示したい場合は、l (list)、n (number)、または p (print) サブコマンドのいずれかを入力します。これらのサブコマンドはオプションです。 V サブコマンドは、a、 i、 c、 g、 G、 および v サブコマンドを受け入れません。 注: V サブコマンドは、
G サブコマンド (パターンに一致する行に、
マークを付けます) の機能を補足するものです。
|
テキストのマーク付け
項目 | 説明 |
---|---|
(.)kx [l] [n] [p] | k (mark) サブコマンドは、アドレス指定した行に x パラメーターで指定した名前のマークを付けます。この名前は ASCII 文字の小文字でなければなりません。
アドレス 'x (マーク文字の前に引用符が 1 つ) は、この行にアドレス指定します。
k サブコマンドは、現在行を変更しません。
マークを付けたテキストを表示したい場合は、l (list)、 n (number)、p (print) サブコマンドのいずれかを入力します。 これらのサブコマンドはオプションです。 |
現在行にマークを付ける
次のサブコマンドを入力します。
kLetter[l][n][p]
この場合、Letter パラメーターは、マークを表す a から z までの文字で、 l、 n、 および p は、 マークの付いたテキストを表示するオプション・サブコマンドです。
アドレス指定した行にマークを付ける
AddresskLetter[l][n][p]
この場合、Address パラメーターは、マークを付けたい行の行番号または記号アドレスです。Letter パラメーターは、マークとして使用する a から z までの文字です。
l、
n、
および p オプション・サブコマンドは、
マークの付いたテキストを表示します。
テキストの移動
項目 | 説明 |
---|---|
(.,.)(.,.) mA [l] [n] [p] | m (move) サブコマンドは、1 つ以上のアドレス指定した行の位置を変更します。
移動する最初の行は、A パラメーターでアドレス指定した行の後に置かれます。
A パラメーターが 0 であれば、アドレス指定した行または行範囲はファイルの先頭に移動します。
移動する行のアドレスを A パラメーターに指定することはできません。
m サブコマンドは、最後に移動した行を現在行に設定します。
削除した結果を表示したい場合は、l (list)、 n (number)、または p (print) サブコマンドのいずれかを入力します。 これらのサブコマンドはオプションです。 |
現在行を移動する
mAddress[l][n][p]
この場合、Address パラメーターは、
現在行の前の行の行番号または記号アドレスです。
l、
n、
p は、
移動した行を表示するオプション・サブコマンドです。
アドレスで指定した行を移動する
LineNumbermDestinationAddress[l][n][p]
この場合、LineNumber パラメーターは移動したい行のアドレスで、
DestinationAddress パラメーターは移動先となる行の前の行です。
l、
n、
および p オプション・サブコマンドは、
移動した行を表示します。
指定したパターンが入っている行を移動する
[Address]g/Pattern/m[DestinationAddress][l][n][p]
この場合、Address は指定したパターンを含む行を探すために検索する行の範囲を指定するオプション・パラメーターで、
Pattern パラメーターは検索対象のテキスト、DestinationAddress は移動先となる行の前の行を表すオプション・パラメーターです。
l、
n、
および p オプション・サブコマンドは、
移動した行を表示します。
Address パラメーターを省略すると、 ed エディターはパターンが入っている行を探してファイル全体を検索します。DestinationAddress パラメーターを省略すると、移動されたテキストは現在行の後ろに挿入されます。
指定したパターンが入っていない行を移動する
[Address]v/Pattern/m[DestinationAddress][l][n][p]
この場合、Address は指定したパターンを含まない行を探すために検索する行の範囲を指定するオプション・パラメーターで、Pattern パラメーターはテキスト、DestinationAddress は移動したテキストの前の行を表すオプション・パラメーターです。
l、
n、
および p オプション・サブコマンドは、
移動した行を表示します。
Address パラメーターを省略すると、ed エディターはパターンが入っていない行を探してファイル全体を検索します。 DestinationAddress パラメーターを省略すると、移動されたテキストは現在行の後ろに挿入されます。
テキストの保存
項目 | 説明 |
---|---|
(1,$)w File | w (write) サブコマンドは、アドレス指定した行をバッファーから File パラメーターで指定したファイルに移動します。
ファイルが存在しない場合、umask の設定で別のファイル作成モードが指定されていなければ、
w サブコマンドは許可コード 666 (全ユーザーに対する読み取り/書き込み許可) を指定してファイルを作成します。
w サブコマンドは、デフォルトのファイル名を変更しません (File パラメーターが ed エディターを始動した後に使用した最初のファイル名でない場合)。 ファイル名を入力しないと、w サブコマンドはデフォルトのファイル名を使用します。 w サブコマンドは、現在行を変更しません。 ed エディターは、バッファーからファイルを正常に書き込むと、 書き込んだ文字数を表示します。 ファイル名の代わりに ! Command サブコマンドを指定すると、 w サブコマンドは、 Command パラメーターで指定された、 オペレーティング・システム・コマンドの出力結果を読み取ります。 w サブコマンドは、 デフォルトのファイル名として指定したオペレーティング・システム・コマンドの名前を保存しません。 注: 0 は w サブコマンドにとって正しいアドレスではないので、ed コマンドで空のファイルを作成することはできません。
|
ファイルを現行ファイルに保存する
w
現行ファイルが現在の名前で保存され、 ed エディターは書き込まれた文字数を表示します。
ファイルの一部を現行ファイルに保存する
Addressw
この場合、Address パラメーターは、書き込まれる行または行範囲を指定します。
ed エディターは書き込まれた文字数を表示します。
ファイルを別のファイルに保存する
w File
この場合、File パラメーターは、書き込み先のファイルの名前です。
現行ファイルは、File パラメーターで指定したファイルに保存されます。 ed エディターは書き込まれた文字数を表示します。
ファイルの一部を別のファイルに保存する
Addressw File
この場合、Address パラメーターは、書き込まれる行または行範囲を指定します。File パラメーターは、書き込み先となるファイルを指定します。
指定された行が File パラメーターで指定されたファイルに保存されます。 ed エディターは書き込まれた文字数を表示します。
テキストの検索
現在行から正方向または逆方向に、テキストのパターンを検索することができます。 パターンには、リテラル文字と特殊文字 ^ (脱字記号)、$ (ドル記号)、. (ピリオド)、[ (左大括弧)、] (右大括弧)、* (アスタリスク)、¥ (円記号)、% (パーセント記号)、& (アンパーサンド) キーからなる文字列または正規表現を使用できます。
正方向に検索する
/Pattern
この場合、Pattern パラメーターは、検索対象となるテキストを指定する文字列または正規表現です。
カーソルは、パターンで指定したテキストの先頭文字に移動します。
逆方向に検索する
?Pattern
この場合、Pattern パラメーターは、検索対象となるテキストを指定する文字列または正規表現です。
カーソルは、パターンで指定したテキストの先頭文字に移動します。
同じ方向に再度検索をする
/
カーソルは、最後の検索コマンド内のパターンで指定したテキストの最も近いインスタンスの先頭文字に移動します。
反対方向に再度検索をする
?
カーソルは、最後の検索コマンド内のパターンで指定したテキストの最も近いインスタンスの先頭文字に移動します。
テキストの置換
項目 | 説明 |
---|---|
(.,.)s/Pattern/Replacement/ [l] [n] [p] (.,.) s/Pattern/ Replacement/ng [l] [n] [p] | s (substitute) サブコマンドは、アドレス指定した各行を検索して Pattern パラメーターと一致する文字列を探し、
その文字列を Replacement パラメーターに指定された値で置き換えます。
パターンは固定文字列または正規表現のいずれかです。
一括 (global) サブコマンド (g) を指定しない場合、
s サブコマンドは、
アドレス指定した各行で最初に一致した文字列だけを置換します。g サブコマンドを指定すると、s サブコマンドはアドレス指定した各行で一致する文字列のすべてのオカレンスを置換します。
パターンに一致するものが見つからなければ、s サブコマンドは、
エラー・メッセージ ? (疑問符) を戻します。
置換後のテキストを表示したい場合は、l (list)、n (number)、p (print) サブコマンドのいずれかを入力します。 これらのサブコマンドはオプションです。 注: スペースまたは改行文字を除き、どの文字でも Pattern パラメーターと Replacement パラメーターを区切ることができます。
s サブコマンドは、最後に変更した行を現在行に設定します。
Number パラメーター (整数) を指定すると、アドレス指定された各行において、その行上の文字列のうち最初に一致する番号が置換されます。 Replacement パラメーターに & (アンパーサンド) を使うと、 Pattern パラメーターと同じ値を持ちます。 例えば、サブコマンド s/are/&n't/ はサブコマンド s/are/aren't/ と同じように機能し、 現在行で are を aren't に置換します。¥& (円記号、アンパーサンド) では、Replacement パラメーター内で & 文字を使用した場合の特殊な意味は無効になります。 サブパターンは、文字列 ¥ ( (円記号、左小括弧) と ¥) (円記号、右小括弧) で囲まれたパターンの部分で、 パターンは囲み文字がない場合と同じように機能します。 Replacement パラメーターでは、¥Number はサブパターンに一致する文字列を指します。 例えば、s/¥(t¥)¥(h¥)¥(e¥)/t¥1¥2ose サブコマンドは、 現在行にパターン the に一致するものがあれば、the を those に置換します。 サブパターンがネストされているか連続しているかに関係なく、¥Number は、 Number パラメーターで指定したオカレンスを、区切り文字 ¥) (円記号、右小括弧) の左から数えて表します。 % (パーセント記号) 文字を、Replacement パラメーターとして単独で使用すると、s サブコマンドは直前の Replacement パラメーターを再使用します。ただし、% が Replacement パラメーターの一部である場合、 または ¥ (円記号) が前に付いている場合は、特別な意味を持ちません。 改行文字を行に代入することによって、行を分割することができます。 Replacement パラメーターで次のようにします。¥-Enter キー・シーケンスを押すと、改行文字 (非表示) が入力され、それ以降の文字列と共にカーソルが次の行に移動します。 g サブコマンドや、 v サブコマンドのリストの一部を、 改行文字で置換することはできません。 |
現在行内でテキストを置換する
- 次のサブコマンドを入力します。
この場合、OldString パラメーターは既存のテキストで、NewString パラメーターはそれと置換したいテキストです。s/OldString/NewString
- 次のいずれかを入力します。
現在行内で、OldString パラメーターの最初のインスタンスを NewString パラメーターに置換するには、次のように入力します。
現在行内で、OldPattern パラメーターのすべてのインスタンスを NewString パラメーターに置換するには、次のように入力します。/
/g
- 変更後のテキストを表示するには、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
アドレス指定した行または行範囲内のテキストを置換する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、テキストを置換したい行または行範囲のアドレスです。OldPattern パラメーターは既存のテキストです。NewString パラメーターは、置換したいテキストです。Addresss/OldPattern/NewString
- 次のいずれかを入力します。
各行で、OldPattern パラメーターの最初のインスタンスを、NewString パラメーターに置換するには、次のように入力します。
各行で、OldPattern パラメーターのすべてのインスタンスを、NewString パラメーターに置換するには、以下のように入力します。/NewString/
各アドレス行で NumberOldPattern パラメーターの最初のインスタンスを NewString パラメーターに置換するには、次のように入力します。/NewString/g
/NewString/Number
- 変更後のテキストを表示するには、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
指定したパターンが入っている行内で、そのパターンを置換する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、Pattern パラメーターで指定したパターンを検索したい行範囲のアドレスです。NewString パラメーターは、Pattern パラメーターの置換に使用したいテキストです。Addressg/Pattern/s//NewString
- 次のいずれかを入力します。
各行で、Pattern パラメーターの最初のインスタンスを、NewString パラメーターに置換するには、次のように入力します。
各行内で、Pattern パラメーターのすべてのインスタンスを、NewString パラメーターに置換するには、次のように入力します。/
/g
- 変更後のテキストを表示するには、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
あるパターンが入っている行内で、別のパターンを置換する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、Pattern パラメーターで指定したパターンを検索したい行範囲のアドレスです。OldString パラメーターは、置換したいテキストです。NewString パラメーターは、OldString の代わりに用いるテキストです。Addressg/Pattern/s/OldString/NewString
- 次のいずれかを入力します。
Pattern パラメーターが入っている各行内で、OldString パラメーターの最初のインスタンスを、NewString パラメーターに置換するには、次のように入力します。
Pattern パラメーターを含む各行内で、OldString パラメーターのすべてのインスタンスを、NewString パラメーターに置換するには、次のように入力します。/
/g
- 変更後のテキストを表示するには、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
あるパターンが入っていない行内で別のパターンを置換する
- 次のサブコマンドを入力します。
この場合、Address パラメーターは、Pattern パラメーターで指定したパターンを検索したい行範囲のアドレスです。OldString パラメーターは、置換したいテキストです。NewString パラメーターは、OldString の代わりに用いるテキストです。Addressv/Pattern/s/OldString/NewString
- 次のいずれかを入力します。
Pattern パラメーターが入っていない各行内で、OldString パラメーターの最初のインスタンスを、NewString パラメーターに置換するには、次のように入力します。
Pattern パラメーターが入っていない各行内で、OldString パラメーターのすべてのインスタンスを、NewString パラメーターに置換するには、次のように入力します。/
/g
- 変更後のテキストを表示するには、次のいずれかのオプション・サブコマンドを入力します。
- Enter を押します。
テキスト変更の取り消し
項目 | 説明 |
---|---|
u [l] [n] [p] | u (undo) サブコマンドは、バッファーの状態を、ed エディター・サブコマンドによる前回の変更以前の状態に戻します。
u サブコマンドでは、
e、
f、
および w サブコマンドの取り消しはできません。
変更した結果を表示したい場合は、l (list)、n (number)、または p (print) サブコマンドのいずれかを入力します。これらのサブコマンドはオプションです。 |
テキストの変更を取り消す
u[l][n][p]
この場合、l、 n、 および p は、 変更を表示するオプション・サブコマンドです。最後に保存した後でテキストに対して実行した追加、変更、移動、コピー、削除の各編集機能がすべて変更前の状態に戻ります。
ファイルの操作
ed エディター・サブコマンドを使用すると、ファイルを操作して次のタスクを実行できます。
現行ファイルに別のファイルを追加する
項目 | 説明 |
---|---|
($)r File | r (read) サブコマンドは、バッファー内のアドレス指定した行の後にファイルを読み込みます。
r サブコマンドは、バッファー内の前の内容は削除しません。
File パラメーターを指定しないと、デフォルトのファイルがあれば、
r サブコマンドはそれをバッファーに読み込みます。
r サブコマンドは、デフォルトのファイル名を変更しません。
アドレス 0 を指定すると、 r サブコマンドはファイルをバッファーの先頭へ読み込みます。ファイルの読み取りが成功すると、 r サブコマンドはバッファーに読み込んだ文字数を表示して、最後に読み込んだ行を現在行に設定します。 r サブコマンド内の File パラメーターを、 ! (感嘆符) に置き換えると、その行の残りは、 出力が読み込まれるオペレーティング・システムのシェル・コマンドと解釈されます。 r サブコマンドは、 オペレーティング・システムのコマンド名をデフォルトのファイル名として保管しません。 |
現在行の後にファイルを挿入する
r File
この場合、File パラメーターは挿入されるファイルの名前です。
ed エディターは、File パラメーターで指定したファイルを、現行ファイル内の現在行の後に読み込み、現行ファイルに読み込んだ文字数を表示します。
アドレスで指定した行の後にファイルを挿入する
次のサブコマンドを入力します。
Addressr File
この場合、Address パラメーターは、挿入先となる行の前の行を指定します。File パラメーターは、挿入されるファイルの名前です。
ed エディターは、File パラメーターで指定したファイルを、現行ファイル内の指定した行の後に読み込んで、現行ファイルに読み込んだ文字数を表示します。
デフォルトのファイル名を変更する
項目 | 説明 |
---|---|
f [File] | f (file name) サブコマンドは、デフォルトのファイル名 (格納された、最後に使用したファイルの名前) を、File パラメーターで指定した名前に変更します。File パラメーターを指定しないと、 f サブコマンドは、デフォルト・ファイル名を表示します。 (e サブコマンドは、 デフォルトのファイル名を保管します。) |
ファイル名を表示する
f
ed エディターは、編集バッファー内のファイルの名前を表示します。
ファイルに名前を付ける
f File
この場合、File パラメーターは、編集バッファー内のファイルの新しい名前です。
編集バッファー内のファイルの名前が変更されます。
別のファイルの編集
項目 | 説明 |
---|---|
e File | e (edit) サブコマンドは、最初にバッファーの内容をすべて削除し、現在行をバッファーの最終行に設定して、バッファーに読み込まれた文字数を表示します。
(w サブコマンドにより) 前回の内容を保存した後に、
バッファーに変更を行った場合、ed エディターはそのバッファーを消去する前に、
? (疑問符) を表示します。
e サブコマンドは、File パラメーターを、 その後の e、r、 または w サブコマンドで必要に応じて使用される、 デフォルトのファイル名として保管します。(デフォルトのファイル名を変更するには、 f サブコマンドを使用してください。) File パラメーターを ! (感嘆符) に置き換えると、 e サブコマンドは、 その行の残りをオペレーティング・システムのシェル・コマンドと解釈して、 コマンド出力を読み込みます。e サブコマンドは、シェル・コマンドの名前をデフォルトのファイル名としては保管しません。 |
E File | E (Edit) サブコマンドは、e サブコマンドと同様に機能します。 ただし、E サブコマンドは、最後に w サブコマンドを実行した後で加えられたバッファーへの変更を、検査しません。ファイルを再編集する前に行った変更はすべて失われます。 |
e または E サブコマンドを使用すると、次のタスクを実行できます。
現行ファイルを保存せずに再編集する
E
ed エディターは、ファイル内の文字数を表示します。 ファイルを再編集する前に行った変更はすべて失われます。
現行ファイルを保存してから再編集する
e
ed エディターは、ファイル内の文字数を表示します。
現行ファイルを保存した後で別のファイルを編集する
e File
この場合、File パラメーターは、 編集したい新規ファイルまたは既存のファイルの名前です。
既存のファイルの場合、ed エディターはファイル内の文字数を表示します。 新しいファイルの場合、ed エディターは ? (疑問符) とそのファイルの名前を表示します。
現行ファイルを保存せずに別のファイルを編集する
E File
この場合、File パラメーターは、
編集したい新規ファイルまたは既存のファイルの名前です。
既存のファイルの場合、ed エディターはファイル内の文字数を表示します。新しいファイルの場合、ed エディターは ? (疑問符) とそのファイルの名前を表示します。
ed エディター・サブコマンドのその他の機能
プロンプト文字列を変更する
項目 | 説明 |
---|---|
P | P (Prompt) サブコマンドは * (アスタリスク) で表される ed エディターのプロンプト文字列をオンまたはオフにします。 初期状態では、P サブコマンドはオフになっています。 |
プロンプト文字列の表示を開始または停止する
P
ed エディターのプロンプトである * (アスタリスク) が、 以前の設定に応じて表示されるか、または表示されなくなります。
システム・コマンドを入力する
項目 | 説明 |
---|---|
! Command | ! サブコマンドを使用すると、ed エディターを終了せずにオペレーティング・システム・コマンドを実行できます。
ed エディターのサブコマンド・ラインで ! サブコマンドの後にあるものは、
すべてオペレーティング・システム・コマンドと解釈されます。
そのコマンド文字列のテキスト内で、ed エディターは、エスケープされていない % (パーセント記号) がある場合、それを現行ファイル名と置き換えます。
! ed エディター・サブコマンドの後に、 ! (感嘆符) を入力すると、 直前のオペレーティング・システム・コマンドを繰り返すことができます。 オペレーティング・システムのコマンド・インタープリター (sh コマンド) が、 コマンド文字列を展開した場合、ed エディターは展開された行をエコーします。 ! サブコマンドは、現在行を変更しません。 |
1 つのオペレーティング・システム・コマンドを実行する
!Command
この場合、Command パラメーターは、
通常はプロンプトから入力されるオペレーティング・システム・コマンドを指定します。
コマンドが実行され、その出力が表示されます。 コマンドが完了すると、エディターは ! (感嘆符) を表示します。
1 つのオペレーティング・システム・コマンドを再度実行する
!
前に実行されたオペレーティング・システム・コマンドが実行され、その出力が表示されます。 コマンドが完了すると、エディターは ! (感嘆符) を表示します。
複数のオペレーティング・システム・コマンドを実行する
- 次のサブコマンドを入力して、オペレーティング・システムのプロンプトを表示させます。
!sh
- オペレーティング・システム・コマンドを入力します。
- Enter を押してコマンドを実行し、その出力を表示します。
- ステップ 2 と 3 を繰り返して、オペレーティング・システム・コマンドの実行をさらに続けます。
- Ctrl+D を押して、コマンド・モードに戻ります。 エディターは ! (感嘆符) を表示します。
ed エディターを終了する
項目 | 説明 |
---|---|
q | q (quit) サブコマンドは、最後の変更内容が入力された後でバッファーがファイルに保存されたかどうかを検査してから、ed エディターを終了します。 バッファーがファイルに保存されていなければ、q サブコマンドは ?(疑問符) メッセージを表示します。ed エディターを終了するには、q サブコマンドをもう一度入力します。 現行ファイルに書き込まれた変更内容は失われます。 |
Q | Q (Quit) サブコマンドは、バッファーをファイルに保存した後で変更が行われたかどうか検査せずに、ed エディターを終了します。最後に保存した後でバッファーに対して行われた変更はすべて失われます。 |
編集結果を検査してから終了する
- 次のサブコマンドを入力します。
q
- ed エディターが ? を表示したら、次のいずれかのサブコマンドを入力します。終了する前に変更結果を保存するには、次のように入力し、
次に Enter を押します。w
変更結果を保存せずに終了するには、次のように入力します。q
- Enter を押します。
終了して編集結果を破棄する
- 次のサブコマンドを入力します。
Q
- Enter を押します。最後に保存した後でバッファーに対して行われた変更はすべて失われます。
ヘルプを要求する
項目 | 説明 |
---|---|
h | h (help) サブコマンドは、最後に表示された ? (疑問符) 診断またはエラー・メッセージに関する簡単なヘルプ・メッセージを表示します。 |
H | H (Help) サブコマンドを使用すると、ed エディターは、 その後のすべての ? (疑問符) 診断メッセージに対するヘルプ・メッセージが表示します。 また、H サブコマンドは、前の ? (疑問符) があれば、その説明も表示します。 H サブコマンドは、このモードのオンとオフを交互に切り替えます。 初期状態ではオフになっています。 |
ヘルプ・メッセージの表示を開始または停止する
H
ed エディターからの ? の応答に対して、前の設定値に応じて、 ヘルプ・メッセージが表示されたり、表示されなかったりします。
前回のヘルプ・メッセージを表示する
h
ed エディターからの最後の ? の応答に対して、ヘルプ・メッセージが表示されます。
ed エディターでの文字クラスのサポート
[character-character]
照合シーケンスの第 1 の文字は、第 2 の文字と等しいかそれ以下でなければなりません。例えば、[a-c] は En_US ロケール内の文字、a、b、c のいずれとも一致します。
範囲式は、通常、文字クラスのマッチングを行うのに使用されます。 例えば、[0-9] はすべての数字を意味し、[a-z A-Z] はすべての文字を意味します。 範囲が現行ロケールの照合シーケンスに従って解釈される場合、このフォーマットを使うと予期しない結果を招くことがあります。
上記のフォーマットの代わりに、[ ] (大括弧) で囲んだ文字クラスの式を使用して、 文字のマッチングを行ってください。 システムは、このタイプの式を現行ロケールの定義に従って解釈します。 しかし、範囲式に文字クラス式は使用できません。
[:CharacterClass:]
つまり、左大括弧、コロン、文字クラス名、もう 1 つのコロン、右大括弧の順になります。
すべてのロケールでサポートされる文字クラスは、次のとおりです。
項目 | 説明 |
---|---|
[:upper:] | 大文字 |
[:lower:] | 小文字 |
[:alpha:] | 大文字と小文字 |
[:digit:] | 数字 |
[:alnum:] | 英数字 |
[:xdigit:] | 16 進数字 |
[:punct:] | 句読文字 (制御文字でも英数字でもない) |
[:space:] | スペース、タブ、復帰、改行、垂直タブ、用紙送りの各文字 |
[:print:] | スペースを含む印刷可能文字 |
[:graph:] | スペースを含まない印刷可能文字 |
[:cntrl:] | 制御文字 |
[:blank:] | スペースとタブ文字 |
大括弧は文字クラス定義の一部です。 大文字の ASCII 文字または ASCII 数字に一致させるには、次の正規表現を使います。
[[:upper:] [:digit:]]
[A-Z0-9] という式は使いません。
ロケールによっては上記のリスト以外の文字クラスをサポートすることがあります。
改行文字は [:space:] 文字クラスの一部ですが、この文字クラスでは一致しません。改行文字は、特殊検索文字 $ (ドル記号) と ^ (脱字記号) でのみ一致させることができます。
終了状況
ed コマンドおよび red コマンドは次の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |