日本語 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 として呼 び出されるとき、エディタは、"restricted" (制限された) モードで実行し、唯 一の違いは、`!' によってシェルコマンドと解釈される) または `/' を含むこと を制限されることです。ユーザがカレントディレクトリに書き込みアクセスでき ない場合のみ、カレントディレクトリの外側の編集が禁止されることに注意して ください。ユーザにカレントディレクトリの書き込みアクセスがあるなら、カレ ントディレクトリにシンボリックリンクを作成することができ、その場合に、red は、ユーザが、シンボリックリンクが指すファイルを編集することを妨げませ ん。 file 引数を付けて呼び出されるなら、file のコピーは、エディタのバッファに 読み込まれます。変更は、直接 file それ自体ではなく、このコピーに行われま す。ed を終了するとき、w コマンドによって明示的に保存されなかったあらゆる 変更は、失われます。 編集は、2 つの個別のモードで行われます: command と input です。最初に呼び 出されるとき、ed は、コマンドモードです。このモードで、コマンドは、標準入 力から読み込まれ、エディタバッファの内容を操作するために実行されます。通 コマンドは、次のように見えるかもしれません: ,s/old/new/g これは、文字列 old のすべての発生を new に置き換えます。 a (append; 付加)、i (insert; 挿入) または c (change; 変更) のような入力コ マンドが与えれるとき、ed は、入力モードに入ります。これは、テキストをファ イルに追加する主要な方法です。このモードで、コマンドは、利用可能ではあり ません。代わりに、標準入力は、エディタバッファに直接書き込まれます。行 は、改行文字を含んで、改行までのテキストで構成されます。入力モードは、行 の単一のピリオド (.) に入ることによって終了します。 すべての ed コマンドは、全体の行または行の範囲で動作します。例えば、d コ マンドは、行を削除します。m コマンドは、行を移動するなどです。上記の例の ように、置換を用いて行の一部分だけを修正することが可能です。しかしなが ら、ここでさえ、s コマンドは、一度に全体の行に適用されます。 一般的に、ed コマンドは、0 個以上の行番号 (アドレス) から成り、単一の文字 コマンドとことによると追加のパラメータが続きます。すなわち、コマンドは、 次の構造があります: [address[,address]]command[parameters] (複数の) 行番号 (アドレス) は、コマンドよって影響される行または行の範囲を 示します。受け付けられたコマンドより少ない行番号 (アドレス) が与えられな ら、デフォルトの行番号 (アドレス) が供給されます。 オプション 次のオプションが利用可能です: -s 診断を抑制します。ed の標準入力がスクリプトからであるなら、使用さ れるべきです。 -x 続く読み込みと書き込みで使用される暗号化キーのためのプロンプト (x コマンドを参照)。 -p string コマンドプロンプトを指定します。これは、P コマンドでオンとオフに 切り替えられます。 file 読み込みのためのファイルの名前を指定します。file に感嘆符 (!) が 前に付けられるなら、それは、シェルコマンドと解釈されます。この場 合に、読み込まれるものは、sh(1) を通して実行された file の標準出 力です。感嘆符で始まる名前があるファイルを読み込むためには、バッ クスラッシュ (\) を名前の前に付けます。デフォルトのファイル名は、 感嘆符が前に付けられていない場合のみ、file に設定されます。 行の指定 行番号 (アドレス) は、バッファの行番号を表します。ed ユーティリティは、な にも指定されないとき、通常デフォルトの行番号 (アドレス) としてコマンドに 供給される現在の行番号 (アドレス) を管理しています。ファイルが最初に読み 込まれるとき、現在の行番号 (アドレス) は、ファイルの最後の行に設定されま す。一般的に、現在の行番号 (アドレス) は、コマンドによって影響された最後 の行に設定されます。 行の指定は、下記のリストの基本の 1 つから構成され、オプションで数値のオフ セットが続きます。オフセットは、数字のあらゆる組み合わせ、演算子 (すなわ ち、+, - と ^) と空白類を含みます。行は、左から右に読み込まれ、それらの値 は、現在の行番号 (アドレス) と関連して計算されます。 行 (アドレス) が行番号を表す規則の 1 つの例外は、行番号 (アドレス) 0 (ゼ ロ) です。これは、"最初の行の前" 意味し、どこで、意味があろうとも正当で す。 行番号 (アドレス) の範囲は、コンマまたはセミコロンによって区切られる 2 つ の行番号 (アドレス) です。範囲の最初の行番号 (アドレス) の値は、2 番目の 値を越えることはできません。ただ 1 つの行番号 (アドレス) が範囲で与えられ るなら、2 番目の行番号 (アドレス) は、与えられた行番号 (アドレス) に設定 されます。n 組の行番号 (アドレス) が指定されるなら、ここで n > 2 です、n 組の最後の 2 つの行番号 (アドレス) で決定される範囲がコマンド実行対象にな ります。ただ 1 つの行番号 (アドレス) が期待されるなら、最後の行番号が使用 されます。 コンマで区切られた範囲の各アドレスは、現在の行 (アドレス) と相対的である と解釈されます。セミコロンで区切られた範囲で、最初の行番号 (アドレス) は、現在の行番号 (アドレス) を設定するために使用され、2 番目の行番号 (ア ドレス) は、最初の行と相対的であると解釈されます。 次の行番号 (アドレス) のシンボルが解釈されます: . バッファの現在の行番号 (アドレス)。 $ バッファの最後の行。 n バッファの n 番目の行、ここで、n は、範囲 [0,$] の数値です。 - または ^ 前の行。これは、-1 と同等で、効果を累積して繰り返されます。 -n または ^n n 番目の前の行、ここで n は、負でない数値です。 + 次の行。これは、+1 と同等で、効果を累積して繰り返されます。 +n n 番目の次の行、ここで n は、負でない数値です。 , または % バッファの最初から最後までの行。これは、行番号 (アドレス) の範囲 1,$ と同等です。 ; バッファの現在の行から最後までの行。これは、行番号 (アドレス) の 範囲 .,$ と同等です。 /re/ 正規表現 re を含んでいる次の行。検索は、バッファの最初に折り返し て、必要であるなら、現在の行に続きます。// は、最後の検索を繰り返 します。 ?re? 正規表現 re を含んでいる前の行。検索は、バッファの終わりで折り返 して、必要であるなら、現在の行に続きます。?? は、最後の検索を繰り 返します。 'lc k (マーク) コマンドによってマークされた以前の行、ここで lc は、小 文字です。 正規表現 正規表現は、テキストを選択するために使用されるパターンです。例えば、次の コマンド: 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\) 部分式 re を定義します。部分式は、入れ子 (nest) にできます。形式 \n のその後の後方参照、ここで n は、範囲 [1,9] の数値で、n 番目の 部分式によって一致しているテキストに展開します。例えば、正規表現 `\(.*\)\1' は、同一の隣接した部分列から成るあらゆる文字列に一致し ます。部分式は、それらの左のデリミタに関連して順序付けされます。 * 0 回以上直接先行している単一の文字の正規表現または部分式と一致し ます。* が正規表現または部分式の最初の文字であるなら、それは、そ れ自体に一致します。* 演算子は、時々予想しない結果をもたらしま す。例えば、正規表現 `b*' は、ヌル文字の一致が、最も左の一致のみ であるので、(部分文字列 `bbb' と対比されるような) 文字列 `abbb' の最初と一致します。 \{n,m\} or \{n,\} or \{n\} 少なくとも n 回と多くても m 回直ち先行している単一の文字の正規表 現または部分式と一致します。m が省略されるなら、少なくとも n 回一 致します。また、コンマが省略されたなら、それは、正確に n 回一致し ます。 追加の正規表現の演算子は、特定の regex(3) 実装に依存して定義されていま す。 コマンド すべての ed コマンドは、単一の文字ですが、追加のパラメータをいくつか必要 とします。コマンドのパラメータがいくつかの行の範囲に渡るなら、最後を除い て各行は、バックスラッシュ (\) によって終了しなければなりません。 一般的に、多くても 1 つのコマンドが行ごとに許可されます。しかしながら、ほ とんどのコマンドは、コマンドによって影響される最後の行を印刷 (表示) する ために、p (print; 印刷)、l (list; リスト) または n (enumerate; 列挙) のい ずれかである、印刷の接尾辞を受け付けます。 割り込み (通常 ^C) は、現在のコマンドをアボートさせて、エディタをコマンド モードに戻す効果があります。 ed ユーティリティは、次のコマンドを認識します。コマンドは、(括弧で) 何も 指定されないなら、供給されるデフォルトの行番号 (アドレス) または行番号 (アドレス) の範囲とともに表示されます (.)a 指定された行の後のバッファにテキストを付け加えます。テキストは、 入力モードで入力されます。現在の行番号 (アドレス) は、入力された 最後の行に設定されます。 (.,.)c バッファ内の行を変更します。指定された行は、バッファから削除さ れ、テキストは、それらの適切な位置に付け加えられます。テキスト は、入力モードで入力されます。現在の行番号 (アドレス) は、入力さ れた最後の行に設定されます。 (.,.)d 指定された行をバッファから削除します。削除された範囲の後に行があ るなら、現在の行番号 (アドレス) は、この行に設定されます。そうで なければ、現在のアドレスは、削除された範囲の前の行に設定されま す。 e file file を編集して、デフォルトのファイル名を設定します。file が指定 されないなら、デフォルトのファイル名が、使用されます。バッファの あらゆる行は、新しいファイルが読み込まれる前に、削除されます。現 在の行番号 (アドレス) は、読み込まれt最後の行に設定されます。 e !command !command の標準出力を編集します (以下の !command を参照)。デフォ ルトのファイル名は、変更されません。バッファのすべての行は、 command の出力が読み込まれる前に、削除されます。現在の行番号 (ア ドレス) は、読み込まれた最後の行に設定されます。 E file file を無条件に編集します。これは、書き込まれていない変更が警告な しで破棄されることを除いて、e コマンドと同様です。現在の行番号 (アドレス) は、読み込まれた最後の行に設定されます。 f file デフォルトのファイル名を file に設定します。file が指定されないな ら、デフォルトのエスケープされないファイル名が、印刷 (表示) され ます。 (1,$)g/re/command-list 正規表現 re に一致している指定された行のそれぞれに command-list を適用します。現在の行番号 (アドレス) は、command-list が実行され る前に、現在一致している行に設定されます。g コマンドの終わりで、 現在の行番号 (アドレス) は、command-list によって影響された最後の 行に設定されます。 command-list の各コマンドは、個別の行になければならなくて、最後を 除いてすべての行は、バックスラッシュ (\) によって終了しなければな りません。あらゆるコマンドは、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 指定された行を結合します。指定された行は、バッファから削除され、 それらの結合されたテキストを含んでいる単一の行で置き換えられま す。現在の行番号 (アドレス) は、その結果の行に設定されます。 (.)klc 小文字 lc で行をマークします。次に、行は、続くコマンドで 'lc とし て指定することができます (すなわち、lc) が続いている単一の引用 文)。マークは、行が削除されるか、または、そうでなければ修正される まで、クリアされません。 (.,.)l 明らかに指定された行を印刷 (表示) します。単一の行が、複数の画面 (例えば、バイナリファイルを見るときの場合のように) で満たされるな ら、``--More--'' プロンプトは、最後の行に印刷 (表示) されます。ed ユーティリティは、次の画面を表示する前に、RETURN キーが押されるま で待ちます。現在の行番号 (アドレス) は、印刷 (表示) された最後の 行に設定されます。 (.,.)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 (グローバル) 接尾辞が与えられるなら、すべての一致を置き換え らます。n 接尾辞によって、ここで、n は、正の整数で、n 番目の一致 のみが、置き換えられます。置換が指定された行のいずれかで実行され ないなら、それは、エラーです。現在の行番号 (アドレス) は、影響さ れた最後の行に設定されます。 re と replacement は、空白と改行以外のあらゆる文字によっても区切 られます (以下の s コマンドを参照)。最後のデリミタの 1 つまたは 2 つが省略されるなら、影響される最後の行は、あたかも印刷 (print) 接 尾辞 p が指定されたかのように、印刷 (表示) されます。 replacement (置換) のエスケープされない `&' は、現在一致している テキストで置き換えられます。文字シーケンス \m, は、ここで m は、 範囲 [1,9] の数値です、一致しているテキストの m 番目の後方参照の 式で置き換えられます。replacement (置換) が単一の `%' から成るな ら、最後の置換の replacement (置換) が使用されます。改行は、それ らがバックスラッシュ (\) でエスケープされるなら、replacement (置 換) に埋め込まれます。 (.,.)s 最後の置換を繰り返します。s コマンドのこの形式は、カウント接尾辞 n または文字 r, g と p のあらゆる組み合わせを受け付けます。カウン ト接尾辞 n が与えられるなら、n 番目の一致だけが置き換えられます。 r 接尾辞によって、最後の検索の正規表現は、最後の置換の代わりに使 用されます。g 接尾辞は、最後の置換のグローバルな接尾辞を切り替え ます。p 接尾辞は、最後の置換の印刷 (print) 接尾辞を切り替えます。 現在の行番号 (アドレス) は、影響された最後の行に設定されます。 (.,.)t(.) 指定された行を行番号 (アドレス) 0 (ゼロ) であるかもしれない、右辺 の宛先アドレスの後にコピーします (すなわち、転送)。現在の行番号 (アドレス) は、コピーされた最後の行に設定されます。 u 最後のコマンドを取り消し、それがコマンドの前であった、現在の行番 号 (アドレス) を復旧します。グローバルコマンド g, G, v と V は、 取り消しによった単一のコマンドとして扱われます。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 続く読み込み書き込みで使用される暗号キーのためにプロンプトを出し ます。キーとして改行だけが入力されるなら、暗号化は、オフに切り替 えられます。そうでなければ、エコーは、無効にされますが、キーは、 読み込まれます。 (.+1)zn 指定された行で開始する n 行を一度にスクロールします。n が指定され ないなら、現在のウィンドウサイズが、使用されます。現在の行番号 (アドレス) は、印刷 (表示) された最後の行に設定されます。 !command sh(1) を通して command を実行します。command の最初の文字が `!' であるなら、それは、以前の !command のテキストによって置き換えら れます。ed ユーティリティは、バックスラッシュ (\) エスケープのた めの command を処理しません。しかしながら、エスケープされない % は、デフォルトのファイル名で置き換えられます。シェルが実行から返 るとき、`!' は、標準出力に印刷 (表示) されます。現在の行は、変更 されません。 ($)= 指定された行の行番号を印刷 (表示) します。 (.+1)newline 指定された行を印刷 (表示) し、現在の行番号 (アドレス) をその行に 設定します。 関連ファイル /tmp/ed.* バッファファイル ed.hup 端末がハングアップするなら、ed がバッファを書き込むことを試み るファイル 診断 エラーが起こるとき、ed は、`?' を印刷 (表示) し、コマンドモードに戻るか、 またはその入力がスクリプトからであるなら、終了します。最後のエラーの説明 は、h (help) コマンドで印刷 (表示) することができます。 g (global) コマンドは、失敗した検索と置換からあらゆるエラーでマスクするの で、それは、スクリプトの条件付きの操作を実行するために使用することができ ます。例えば、 g/old/s//new/ は、old のあらゆる存在を new に置き換えます。u (undo) コマンドがグローバ ルなコマンドリストに存在するなら、コマンドリストは、1 度だけ実行されま す。 診断が無効にされないなら、ed を終了することを試みるか、または修正された バッファの書き込みが、エラーの結果となる前に別のファイルを編集します。コ マンドが 2 回入力されるなら、成功しますが、バッファへのあらゆる変更は、失 われます。 関連項目 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 は、読み込む/書き込むとき、改行を付け加えません。 行ごとのオーバヘッド: 4 つの整数。 歴史 ed コマンドは、Version 1 AT&T UNIX で登場しました。 バグ ed ユーティリティは、マルチバイト文字を認識しません。 FreeBSD 12.2 February 5, 2017 FreeBSD 12.2