ストリームエディタ
sed [-n] [-V] [--quiet] [--silent] [--version] [--help] [-e script] [--expression=script] [-f script-file] [--file=script-file] [script-if-no-other-script] [file...]
-V
--version
-h
--help
-n
--quiet
--silent
-e script
--expression= script
script
のコマンドを、入力の処理中に行われるコマンドセットに追加する。
-f script-file
--file= script-file
script-file
に含まれるコマンドを、入力の処理中に行われるコマンドセットに追加する。
-e , -f , --expression , --file
などのオプションがコマンドラインから全く与えられなかった場合は、
コマンドラインの引き数のうち、オプションでない最初のものが
script
として受け取られ、実行される。
以上のコマンドラインパラメータを処理したあとに引き数が残った場合は、
それらは処理対象となる入力ファイルのファイル名と解釈される。
-
というファイル名は、標準入力ストリームを参照する。
ファイル名が全く指定されなかった場合は標準入力を処理する。
: label
# comment
}
=
a \
text
text
を追加する。
text
に改行を含めたい場合は、その前にバックスラッシュを置く。
i \
text
text
を挿入する。
text
に改行を含めたい場合は、その前にバックスラッシュを置く。
q
r filename
filename
から読んで追加する。
{
b label
label
に分岐する。
label
が省略された場合は、スクリプトの末尾に分岐する。
t label
label
に分岐する。
label
が省略された場合は、スクリプトの末尾に分岐する。
c \
text
text
で置換する。
text
に改行を含めたい場合は、その前にバックスラッシュを置く。
d
D
h H
g G
x
l
n N
p
P
s/ regexp / replacement /
regexp
のマッチを試みる。
マッチに成功すると、マッチした部分を
replacement
に置換する。
replacement
は特殊文字である
&
を含むことができ、これはパターンスペースのマッチした部分を参照する。
また \1 から \9 までの特殊エスケープを含むこともでき、
これは
regexp
の副表現 (sub-expression) にマッチした部分をそれぞれ参照する。
w filename
filename
に書く。
y/ source / dest /
source
にあるものを、
dest
の同じ位置にある文字に交換する。
addr1
にマッチした行は、たとえ
addr2
がより前の行にマッチした場合でも、常に処理対象となる。
addr2
が
regexp
(正規表現) の場合には、
addr1
にマッチした行に対しては
addr2
のマッチは行われない。
アドレス (あるいはアドレス範囲) とコマンドの間には
!
を挟むことができる。この場合は、アドレス (あるいはアドレス範囲) が
マッチしなかった行に対してのみコマンドが実行される。
以下のアドレスタイプがサポートされている。
number
number
で指定した行だけにマッチする。
first ~ step
first
行からはじまる
step
行おきの行にマッチする。例えば ``sed -n 1~2p'' は
入力行のうち奇数行を表示し、アドレスを 2~5 にすると、
第 2 行から 5 行おきに表示する (これは GNU の拡張である)。
$
/ regexp /
regexp
にマッチした行にマッチする。
\c regexp c
regexp
にマッチした行にマッチする。
文字
c
は何でもよい。
replacement
の内部・文字交換 (y) コマンドの
source
および
dest
の内部のいずれにおいても、
<newline>
というシーケンスが使える。