次: , 上: ed Scripts


2.5.1.1 ed書式の詳細な記述

ed出力書式は,一つ以上の差異部分のhunkから成り立ちます.複数行 を変更するコマンドで,edコマンドの成功によって行番号を解釈する 方法に影響しないように,ファイルの終りに近い変更が最初に来ます. ed書式のhunkは以下のようになります.

     change-command
     to-file-line
     to-file-line...
     .

edは行中のピリオドを入力の終りを示すものとして使用するので, gnu diffは,行中の単一のピリオドを二つのピリオドとして書 き込み,それに続くedコマンドで二つのピリオドを一つに変更するこ とで,変更された行を保護します.ed書式は不完全な行を表現するこ とが不可能なので,二番目のファイルの終りが変更のある不完全な行の場合, diffはエラーを報告し,改行を追加するように要求します.

三種類の変更コマンドがあります.それぞれ,最初のファイルの行番号やカンマ で分離されている行の範囲と変更させる手法を示す単一文字から成り立ちます. すべての行番号は,ファイルの元々の行番号です.変更コマンドの種類は以下の とおりです.

`la'
最初のファイルのl行目の後に二番目のファイルからのテキストを追加し ます.例えば`8a'は,ファイル1の8行目以降に,それに続く行を追加しま す.
`rc'
最初のファイルの範囲rの行を,それに続く行で置換します.追加と削除 の組み合わせに似ていますが,よりコンパクトです.例えば`5,7c'は,ファ イル1の5–7行をファイル2のテキストで変更することを意味します.
`rd'
最初のファイルから範囲rの行を削除します.例えば,`5,7d'は,ファ イル1の5–7行を削除することを意味します.