次: Other Commands, 前: Common Commands, 上: sed Programs
sコマンド(置換での)sコマンドの構文は,
`s/regexp/replacement/flags'です./文字は,
他の単一文字をsコマンドで与えることで一様に置換してもかまいませ
ん./文字(または,それの代わりの使用されているその他の文字)は,
\文字を前置した場合だけregexpやreplacementに書くこと
が可能です.
sコマンドは,おそらくsedで最も重要で,様々なオプション
が多くあります.基本的な概念は単純です.sコマンドは,提供されて
いるregexpに対しパターン空間のマッチを試みます.マッチが成功する
場合.マッチしたパターン空間の位置がreplacementで置換されます.
replacementに\n(nは1から9までの数字で,1と9も
含まれます)での参照を含めることが可能で,それはn番目の\(と
そのマッチと\)に含まれているマッチの位置を参照します.また,
replacementに,パターン空間のマッチ位置全体を参照する,エスケープ
されていない&文字を含めることも可能です.
最後に(これはGNU sedの拡張です),特別なバックスラッシュのシーケン
スと文字L,l,U,u,またはEの一つを
含めることが可能です.それぞれの意味は以下のとおりです.
\L\Uや\Eが見つかるまで小文字に置換します.
\l\U\Lや\Eが見つかるまで大文字に置換します.
\u\E\Lや\Uで開始した大文字小文字の変換を停止します.
\,&,または改行そのものを最終的な置換物に含めるため,
replacement内の\,&,または改行に必要な\を確
実に前置してください.
sコマンドにはゼロ以上の下記のflagsを続けることが可能です.
g
注意:posixの標準は,gとnumber指示語を混ぜたときに生
じることを指定しておらず,現在はsedの実装上で幅広い同意はあり
ません.GNU sedでは,相互作用を以下のように定義しています.
number番目までのマッチを無視し,number番目からマッチしした
すべてのマッチを置換します.
p注意:pとeオプションの両方が指定されているとき,二つの順
序に関連して,全く異なる結果を生成します.一般的に,ep(評価して
出力)では期待したものになるでしょうが,もう一方の順番はデバッグで役に立
つものになります.この理由は,現在のバージョンのGNU sedが,
e前後のpオプションの存在を特別なものとして解釈しますが,
sコマンドに対する一般的なフラグはその効果を一度だけ表示するため
です.この動作は,ドキュメントには書かれていますが,将来のバージョンで
は変更するかもしれません.
w file-nameeIiI指示語はGNUの拡張で,大文字小文
字を無視する方法で,sedにregexpにマッチさせます.
MmM指示語は,GNU sedの拡張で,
^と$を(通常の動作に加え),それぞれ改行後の空の文字列と改
行前の空の文字列にマッチさせます.特殊な文字の並びがあります.
(\`と\')
これらは常にバッファの最初または最後にマッチします.Mは
multi-lineを意味します.