Next: , Previous: Introduction, Up: Top


2 呼び出し

通常sedは以下のように呼び出されます.

     sed SCRIPT INPUTFILE...

sedの呼び出し全体の書式は以下のようになります.

     sed OPTIONS... [SCRIPT] [INPUTFILE...]

INPUTFILEを指定していない場合,またはINPUTFILE-の 場合,sedは標準入力の内容をフィルタリングします. scriptは,実際にはオプションではない最初のパラメータで,それは sedにとってスクリプトと思われるもの,かつ,入力ファイルではな いものです.それ以外のoptions,つまり-e-fオプ ションで実行スクリプトとして指定されている場合(そしてその場合だけ)はそ れがスクリプトになります.

sedは,以下のコマンドラインオプションを用いて呼び出してもかま いません.

--version
実行しているsedのバージョンと著作権の注意を出力し終了します.
--help
これらのコマンドラインオプションを要約した,短い使用方法のメッセージと バグを報告するアドレスを出力し終了します.
-n
--quiet
--silent
デフォルトでsedは,スクリプトのサイクルごとの終了時にパターン 空間を出力します.これらのオプションで,この自動的な出力を使用不可能に し,sedpコマンドで明示的に告げるときだけ出力を生成し ます.
-i[SUFFIX]
--in-place[=SUFFIX]
このオプションは,その場でファイルを編集することを指定します. GNU sedは一時的なファイルを作成し,標準出力の代わりにこのファイル に出力を送ります1

このオプションは-sを暗黙に指定します.

ファイルの終りに到達したとき,一時ファイルの名前を出力ファイルの元の名 前に変更します.拡張子が与えられている場合,一時ファイル(それによってバッ クアップのコピー2が作成されます)の名前を変える前に古いファイルの名前を編集する ために,以下の規則を使用します.

拡張子が*を含まない場合,それはファイル名の接尾子として現在のファ イル名の終りに後置されます.拡張子が一つ以上の*文字を含む場合, それぞれのアスタリスクは現在のファイル名で置換されます.これで, バックアップファイルに接尾子の代わりに(または接尾子に追加で)接頭辞を追 加することや,オリジナルのファイルのバックアップのコピーを(既存のディレ クトリを提供することで)他のディレクトリに配置することさえ可能になります.

拡張子が与えられていない場合,本埜ファイルはバックアップを使用せず上書 きされます.

-l N
--line-length=N
lコマンドに対するデフォルトの行を丸める長さを指定します.0 (ゼ ロ)の長さは,長い行を決して丸めないことを意味します.指定されていない場 合,それは70になります.
--posix
GNU sedは,POSIXsedへの拡張がいくつかありま す.単純に移植性の高いスクリプトを書くために,このマニュアルで説明して いる拡張や追加コマンドを,このオプションで利用不可能にします.

sedプログラムは,POSIXで必須とされている構文以外の ほとんどの拡張を受け入れるますが,(see Reporting Bugsで記述されてい るNコマンドの動作のように)実際に標準を逸脱しているものもあり ます.後者のような拡張だけを利用不可能にしたい場合, POSIXLY_CORRECT変数を空ではない値に設定することで可能となります.

-r
--regexp-extended
基本正規表現ではなく拡張正規表現を使用します.拡張正規表現とは, egrepが受け入れるものです.それらは,バックスラッシュが少ない ためよりわかりやすくなりますが,それはGNUの拡張なので,それを 使用しているスクリプトは移植性が無くなります.See Extended regular expressions.
-s
--separate
デフォルトで,sedはコマンドラインで指定されているファイルが単 一の長いストリームだと考えます.このGNU sedの拡張で,ユーザがそれ らを別々のファイルだと考えることを可能にします.(‘/abc/,/def/’のよ うな)範囲指定のアドレスは,複数のファイルを跨ぐことができず,ファイルの 行番号はそれぞれのファイルの開始位置から相対的なものになり,$は それぞれのファイルの最後の行を参照し,Rコマンドから呼び出された ファイルはそれぞれのファイルの最初に巻き戻されます.
-u
--unbuffered
実用として最小限,入力と出力の両方をバッファリングします.(入力が ‘tail -f’のようなものからのときと,できるだけ速く出力を変換して見 たいとき,特に役に立ちます.)
-e script
--expression=script
scriptのコマンドを,入力を処理している間に実行するコマンドの組に 追加します.
-f script-file
--file=script-file
ファイルscript-fileに含まれているコマンドを,入力を処理している間 に実行するコマンドの組に追加します.

-e-f--expression,または--file オプションがコマンドラインで全く与えられていない場合,コマンドライン上 の最初のオプションではない引数が実行するスクリプトとして渡されます.

コマンドラインのパラメータが上記のものを処理した後に残っている場合,こ れらのパラメータは,処理する入力ファイルの名前として解釈されます.

-’のファイル名は標準入力を参照します.ファイル名が指定されていな い場合,標準入力が処理されます.


Footnotes

[1] これは,=acilpのようなコマンドに適用されます. /dev/stdoutの特殊ファイルを用いてwWコマンドを使 用することで,標準出力にも書き出すことが可能です

[2] GNU sedは,出力ファイルが実際に変更され ているかどうかに依存せずバックアップファイルを作成することに注意してく ださい.