文字列置換の使用
s コマンドは、 入力ファイルの指示された行で文字列置換を行います。
このコマンドは、入力ファイル内に正規表現 Pattern に適合する 1 組の文字セットを 検出すると、その文字のセットを String で指定された文字のセットで置換します。
String パラメーターは、リテラルの文字のセット (数字、文字、および シンボル) です。 String には 2 つの特殊なシンボルを使用することができます。
| シンボル | 使用 |
|---|---|
| & | String のこのシンボルは、Pattern に一致し た入力行内の文字のセットによって置換される。 例えば、次のコマンド |
s/boy/&s/sed に、入力行でパターン・ボーイを見つけ、そのパターンを付加して出力にコピーするように指示します。sしたがって、次のように入力行を変更します。
- From:
- 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 つだけ含める。 |