3.2 sedコマンド一覧
GNU sedは次のコマンドをサポートします。標準POSIXコマンドとGNU拡張の両方があります。各コマンドの詳細と例は、この後の節にあります。覚え方を括弧内に示します。
a\text行の後にtextを追加します。
a text行の後にtextを追加します(別の構文)。
b labellabelへ無条件に分岐します。labelは省略でき、その場合は次のサイクルを開始します。
c\text行をtextに置き換えます(change)。
c text行をtextに置き換えます(change、別の構文)。
dパターンスペースを削除し、直ちに次のサイクルを開始します。
Dパターンスペースに改行が含まれていれば、最初の改行までのテキストを削除し、残ったパターンスペースを使ってサイクルを再開します。新しい入力行は読み込みません。
パターンスペースに改行が含まれていなければ、
dコマンドを実行した場合と同じように、通常の新しいサイクルを開始します。eパターンスペースにあるコマンドを実行し、その出力でパターンスペースを置き換えます。末尾の改行は除去されます。
e commandcommandを実行し、その出力を出力ストリームへ送ります。コマンドは複数行にまたがることができ、その場合は最後の行以外の各行をバックスラッシュで終えます。
F(filename)現在の入力ファイル名を、末尾の改行とともに表示します。
gパターンスペースの内容をホールドスペースの内容で置き換えます。
Gパターンスペースの内容に改行を追加し、その後にホールドスペースの内容を追加します。
h(hold)ホールドスペースの内容をパターンスペースの内容で置き換えます。
Hホールドスペースの内容に改行を追加し、その後にパターンスペースの内容を追加します。
i\text行の前にtextを挿入します。
i text行の前にtextを挿入します(別の構文)。
lパターンスペースを曖昧さのない形式で表示します。
n(next)自動表示が無効になっていなければ、パターンスペースを表示します。その後、自動表示の設定にかかわらず、パターンスペースを次の入力行で置き換えます。入力がもうなければ、
sedは残りのコマンドを処理せず終了します。Nパターンスペースに改行を追加し、その後に次の入力行を追加します。入力がもうなければ、
sedは残りのコマンドを処理せず終了します。pパターンスペースを表示します。
Pパターンスペースを、最初の<newline>まで表示します。
q[exit-code](quit)これ以上コマンドや入力を処理せず、
sedを終了します。Q[exit-code](quit)このコマンドは
qと同じですが、パターンスペースの内容を表示しません。qと同様に、呼び出し元へ終了コードを返せます。r filenameファイルfilenameを読み込みます。
R filenamefilenameの1行を読み込み待ちのキューに入れ、現在のサイクルの最後、または次の入力行を読み込むときに、出力ストリームへ挿入します。
s/regexp/replacement/[flags](substitute)パターンスペースの内容に正規表現を照合します。一致した場合は、一致した文字列をreplacementで置き換えます。
t label(test)最後の入力行の読み込み、または条件付き分岐の実行以降に、
sによる置換が成功している場合だけlabelへ分岐します。labelは省略でき、その場合は次のサイクルを開始します。T label(test)最後の入力行の読み込み、または条件付き分岐の実行以降に、
sによる置換が成功していない場合だけlabelへ分岐します。labelは省略でき、その場合は次のサイクルを開始します。v [version](version)このコマンドは何も行いませんが、GNU
sed拡張がサポートされていない場合、または要求した版が利用できない場合に、sedを失敗させます。w filenameパターンスペースをfilenameへ書き込みます。
W filenameパターンスペースの最初の改行までの部分を、指定したファイル名へ書き込みます。
xホールドスペースとパターンスペースの内容を交換します。
y/src/dst/パターンスペースにある文字のうち、source-charsのいずれかに一致する文字を、対応するdest-charsの文字へ置き換えます。
z(zap)このコマンドはパターンスペースの内容を空にします。
#次の改行までのコメントです。
{ cmd ; cmd ... }複数のコマンドを一つのグループにまとめます。
=現在の入力行番号を、末尾の改行とともに表示します。
: label分岐コマンド(
b、t、T)が使うlabelの位置を指定します。