Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all 

名前
sed - テキストのフィルタリング、変換用のストリームエディター
書式
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
説明
sed はストリームエディターです。ストリームエディターは、入力ストリーム (ファイルまたはパイプラインからの 入力) に対して基本的なテキスト変換を行うために用いられます。sed は 編集スクリプトを使える (ed のような) エディターと いろいろな面で似ていますが、sed は入力に対して 1 パスだけで動作するので、より効率的です。ま た sed はパイプラインのテキストに対してフィルター動作を行うことができ、この点は他のタイプのエディターと はっきり違います。 -n, --quiet, --silent パターンスペースの自動出力を抑制します --debug プログラム実行状況を表示します -e script, --expression=script 実行するコマンドとして script を追加します -f script-file, --file=script-file 実行するコマンドとして script-file の内容を追加します --follow-symlinks インプレース処理においてシンボリックリンクをたどります -i[SUFFIX], --in-place[=SUFFIX] ファイルをインプレース処理で編集します (SUFFIX 指定時はバックアップを取ります) -l N, --line-length=N `l' コマンドの出力行を折り返す長さを指定します --posix 全ての GNU 拡張を無効にします -E, -r, --regexp-extended スクリプトで拡張正規表現を使用します (-E 利用は POSIX 互換性のため) -s, --separate 複数の入力ファイルを一続きのストリームとして扱わずに個別のファイルとして扱います --sandbox サンドボックス (sandbox) モードで実行します (e/r/w コマンドを無効にします) -u, --unbuffered 入力ファイルからデータをごく少量ずつ取り込み、頻繁に出力バッファを掃き出します (flush) -z, --null-data NUL 文字で行を分割します --help ヘルプを表示して終了します --version バージョン情報を出力して終了します -e、--expression、-f、または --file オプションのいずれも指定されない場合、最初のオプションでない引数が sed スクリプトとして解釈されます。 残りの全ての引数は入力ファイル名として扱われます。 入力ファイルが指定 されない場合は、標準入力から読み込みます。 GNU sed ホームページ: <https://www.gnu.org/software/sed/>. GNU ソフトウェアを使用する際の一般的なヘルプ: <https://www.gnu.org/gethelp/>. 電子メールによるバグレポートの宛先: <bug-sed@gnu.org>
コマンドの文法
これは sed コマンドのごく簡単な概要であり、既に sed を知っている人向けの備忘録程度のものです。 より詳細な 情報については、他の文書 (texinfo 文書など) を参照してください。 アドレスを取らないコマンド : label b コマンドと t コマンド用のラベル。 #comment 次の改行文字まで (あるいは -e スクリプトフラグメントの末尾まで) をコメントとして取り扱います。 } { } ブロックの閉じ括弧。 アドレスを 0 または 1 つ取るコマンド = 現在の行番号を出力します。 a \ text text を追加します。 text に改行を含める場合は、各改行の前にバックスラッシュを置きます。 i \ text text を挿入します。 text に改行を含める場合は、各改行の前にバックスラッシュを置きます。 q [exit-code] これ以上入力を処理せず、ただちに sed スクリプトの処理を終了します。 ただし自動出力が抑制されていな い場合、 現在のパターンスペースが出力されます。 引数 exit-code は GNU 拡張です。 Q [exit-code] これ以上入力を処理せず、ただちに sed スクリプトの処理を終了します。 引数 exit-code は GNU 拡張で す。 r filename filename から読み込んだテキストを追加します。 R filename filename から 1 行読み込み、追加します。 コマンドを起動するたびにファイルから次の 1 行を読み込みま す。 このコマンドは GNU 拡張です。 アドレス範囲を指定できるコマンド { コマンドブロックを開始します (} で終了します)。 b label label に分岐します。 label が省略された場合は、スクリプトの末尾に分岐します。 c \ text 選択した行を text で置換します。 text に改行を含めたい場合は、その前にバックスラッシュを置きます。 d パターンスペースを削除します。 次のサイクルを開始します。 D パターンスペースに改行がない場合は、d コマンドと同様に通常の次のサイクルを開始します。 そうでない 場合は、パターンスペースの最初の改行までを削除し、次の入力行を読み込まずに、その結果のパターンス ペースでサイクルを開始します。 h H パターンスペースをホールドスペースにコピー/追加します。 g G ホールドスペースをパターンスペースにコピー/追加します。 l 現在の行を「視覚的に曖昧性のない」形式で一覧出力します。 l width 現在の行を「視覚的に曖昧性のない」形式でリストし、width の文字で折り返します。 このコマンドは GNU 拡張です。 n N 入力の次の行をパターンスペースに読み込む/追加します。 p 現在のパターンスペースを出力します。 P 現在のパターンスペースの最初の改行までを出力します。 s/regexp/replacement/ パターンスペースに対して regexp のマッチを試みます。 マッチに成功すると、マッチした部分を replacement に置換します。 replacement には特殊文字である & を含めることができ、これはパターンス ペースのマッチした部分を参照します。 また \1 から \9 までの特殊エスケープを含むこともでき、これは regexp の部分正規表現 (sub-expression) にマッチした部分をそれぞれ参照します。 t label 直近の入力行が読み込まれて以降、かつ、直近の t あるいは T コマンド以降に、s コマンドが成功していれ ば、label に分岐します。 label が省略された場合は、スクリプトの末尾に分岐します。 T label 直近の入力行が読み込まれて以降、かつ、直近の t あるいは T コマンド以降に、s コマンドが成功していな ければ、label に分岐します。 label が省略された場合は、スクリプトの末尾に分岐します。 このコマンド は GNU 拡張です。 w filename 現在のパターンスペースを filename に書き込みます。 W filename 現在のパターンスペースの先頭行を filename に書き込みます。 このコマンドは GNU 拡張です。 x ホールドスペースとパターンスペースの内容を交換します。 y/source/dest/ パターンスペースにある文字のうち、source にあるものを、dest の同じ位置にある文字に置換します。
アドレス
sed のコマンドはアドレスなしで指定することもでき、この場合そのコマンドは全ての入力行に対して実行されま す。 アドレスをひとつ指定すると、コマンドはそのアドレスにマッチした入力行に対してのみ実行されます。 2 つ のアドレスを指定すると、最初のアドレスにマッチした行から、2 番目のアドレスにマッチした行に至る範囲 (両 マッチ行を含む) にあるすべての行に対して実行されます。 アドレスの範囲指定については次の 3 点に注意してく ださい。 まず指定方法は addr1,addr2 です (つまりアドレスをコンマで区切ります)。 addr1 にマッチした行 は、たとえaddr2 がそれ以前の行にマッチする場合でも、常に処理対象となります。 addr2 が regexp (正規表現) の場合には、addr1 にマッチした行に対しては addr2 のマッチは行われません。 アドレス (あるいはアドレス範囲) とコマンドの間には ! を挟むことができます。 この場合は、アドレス (あるい はアドレス範囲) がマッチしなかった行に対してのみコマンドが実行されます。 以下のアドレスタイプがサポートされています。 number number で指定した行にのみマッチします (コマンドラインで -s オプションを指定していない場合、行数は ファイル間で通算でカウントされます)。 first~step first 行からはじまる step 行おきの行にマッチします。 例えば “sed -n 1~2p” は 入力行のうち奇数行を 出力し、アドレスを 2~5 にすると、第 2 行から 5 行おきに表示します。 first は 0 を指定することが可 能です。 この場合、step に等しい値が指定されたものとして sed は処理します (これは GNU 拡張です)。 $ 最終行にマッチします。 /regexp/ 正規表現 regexp に合致するような行にマッチします。 マッチングは現在のパターン領域において行われま す。 これは “s///” のようなコマンドにより変更されます。 \cregexpc 正規表現 regexp にマッチした行にマッチします。 c には任意の文字を指定できます。 GNU sed は、次の特殊な 2 アドレス形式もサポートします。 0,addr2 「先頭アドレスにマッチした状態」で開始し、addr2 が見つかるまでその状態を維持します。 これ は、1,addr2 に類似していますが、次の点において挙動が異なります。 addr2 が入力の先頭行にマッチする 場合、0,addr2 形式ではアドレス範囲の終了位置にあるとみなされますが、1,addr2 形式ではアドレス範囲の 開始位置にあるとみなされます。 このアドレス指定は、addr2 が正規表現の場合にのみ機能します。 addr1,+N addr1 から、addr1 以降の N 行にマッチします。 addr1,~N addr1 から、addr1 以降の、入力行番号が N の倍数の行までマッチします。
正規表現
POSIX.2 BRE をサポートするべきですが、性能上の問題により完全にはサポートしていません。 正規表現内部の \n シーケンスは改行文字にマッチし、\a、\t、およびその他のシーケンスも同様です。 このかわりに -E オプションは 拡張正規表現の利用に切り替えるものです。 この拡張正規表現は、これまでに長らく GNU sed においてサポートさ れ、現在は POSIX に含まれるようになりました。
バグ
バグレポートは bug-sed@gnu.org まで送ってください。また可能であれば、 「sed --version」の出力結果をレポー ト本文に記載してください。
著者
Jay Fenlason, Tom Lord, Ken Pizzini, Paolo Bonzini, Jim Meyering, Assaf Gordon. この sed プログラムは SELinux サポートを含めてビルドされています。このシステム上においては SELinux が有効 です。 GNU sed ホームページ: <https://www.gnu.org/software/sed/>. GNU ソフトウェアを使用する際の一般的なヘルプ: <https://www.gnu.org/gethelp/>. 電子メールによるバグレポートの宛先: <bug-sed@gnu.org>
著作権
Copyright © 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
関連項目
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, sed に関するさまざまな本, sed FAQ (http://sed.sf.net/grabbag/tutorials/sedfaq.txt), http://sed.sf.net/grabbag/. sed の完全な文書は、Texinfo マニュアルでメンテナンスされています。info と sed プログラムが適切にインス トールされていれば、 info sed で、完全なマニュアルを参照することができます。