次: Escapes, 前: Programming Commands, 上: sed Programs
以下のコマンドはGNU sed特有なので,注意して使用する必要があり,移 植性の邪魔が問題ないことが分かっているときだけ使用してください.それで GNU sedの拡張を調査したり,標準的なsedではまだサポートさ れていないが,よく要求される作業を行なうことが可能になります.
e [
command]
e
コマンドはパ
ターン空間で見つかったコマンドを実行し,パターン空間を出力で置換します.
後置される改行は抑制されます.
パラメータが指定されている場合は,代わりにe
コマンドがそれをコマ
ンドとして解釈し,(r
が行なうように)それを出力ストリームに送りま
す.そのコマンドは,最後の終りがバックスラッシュでない限り,複数の行を
跨って実行することが可能です.
いずれの場合でも,実行されたコマンドにnul文字が含まれる場合,結果
は定義されていません.
L
nfmt
が行なうように,(最大)n文字の
行の出力を生成するため,パターン空間の行を補充しつなげます.nが省
略されている場合,コマンドラインで指定されているデフォルトを使用します.
このコマンドの試みは失敗だと思っていて,要求が無ければ(きっと無いでしょ
うけど)将来のバージョンでは削除する予定です.
Q [
exit-code]
このコマンドはq
と同じですが,パターン空間の内容を出力しません.
q
に似ていて,呼び出し側に終了コードを返す能力を提供しています.
この一見些細な機能を達成する唯一の別の方法は,-n
オプションを使用
する方法(スクリプトが不必要に複雑になります)や,見た目に影響しないよう
にファイル全体を読み込むと時間が無駄になるような以下の断片を利用する方
法なので,役に立つはずです.
:eat $d Quit silently on the last line N Read another line, silently g Overwrite pattern space each time to save memory b eat
R
filenamer
コマンド同様,特殊な値/dev/stdinがファイル名としてサポー
トされていて,それは標準入力の内容を読み込みます.
T
labels
の置換で成功
しなかったものがある場合だけlabelに分岐します.labelは省略
可能で,その場合は次のサイクルが開始されます.
v
version4.0.5
の様に,スクリプトが
要求するsedのバージョンを指定することもかのうです.デフォルト
は4.0
で,それは,このコマンドが実装された最初のバージョンだから
です.
このコマンドは,POSIXLY_CORRECTが環境変数で設定されている場合でも,
すべてのGNU extensionsを利用可能にします.
W
filenamew
コマンドですべて述べています.