文字列置換の使用
s コマンドは、 入力ファイルの指示された行で文字列置換を行います。
このコマンドは、入力ファイル内に正規表現 Pattern に適合する 1 組の文字セットを 検出すると、その文字のセットを String で指定された文字のセットで置換します。
String パラメーターは、リテラルの文字のセット (数字、文字、および シンボル) です。 String には 2 つの特殊なシンボルを使用することができます。
シンボル | 使用 |
---|---|
& | String のこのシンボルは、Pattern に一致し た入力行内の文字のセットによって置換される。 例えば、コマンド |
s/boy/&s/
は、sed に、入力行内のパターン boy を検出し、そのパターンに
s を付けて出力にコピーするように指示します。
したがって、その入力行を次のように変更します。
- 変更前:
- The boy look at the game. (男の子はゲームを見る。)
- 変更後:
- The boys look at the game. (男の子達はゲームを見る。)
シンボル | 使用 |
---|---|
¥d | d は単一の数字。 String のこのシンボルは、Pattern 内の d 番目のサブストリングに一致した、入力行内の文字のセットによって置換される。サブストリングは、¥ の文字で始まり (¥ の文字で終わり) ます。 例えば、コマンド
|
フラグとして表示される文字は、置換を以下のように変更します。
シンボル | 使用 |
---|---|
g | 指示された行の Pattern のすべてのインスタンスの
代わりに、String を使用する。 String 内の文字は、挿入後は Pattern と一致
させるためにスキャンされません。 例えば、コマンド
は次の変更を行います。
|
p | 正常に一致した Pattern の入った行を (STDOUT に) 出力する。 |
w FileName | 正常に一致した Pattern の入った行を、FileName に書き出す。 FileName が存在すれば、 上書きされます。存在しなければ、作成されます。 編集処理全体で、最大 10 の異なるファイルを入出力ファイルとして列挙できます。 w と FileName の間には正確に 1 つのスペースを入れます。 |