使用字符串替换
s 命令在输入文件的指定行中执行字符串替换。
如果命令在输入文件中找到一组满足正则表达式 Pattern 的字符, 它会用 String 中所指定的那组字符来来替换它们。
String 参数为一组文字字符(数字、字母和符号)。 在 String 内可使用两个特殊符号:
| 符号 | 使用 |
|---|---|
| & | 在 String 中该符号被与 Pattern 匹配的输入行中的那组字符所替换。 例如,命令: |
s/boy/&s/指示 sed 在输入行中查找模式男孩,并将该模式复制到带有附加项的输出s. 因此,它会更改输入行:
- 发件人:
- The boy look at the game.
- 收件人:
- The boys look at the game.
| 符号 | 使用 |
|---|---|
| \d | d 是一位数。 String 中的此符号将替换为与 Pattern中的 d子串匹配的输入行中的字符集。 子串以字符 \ 开头 (以字符 \ 结尾)。 例如,命令:
|
作为标记出现的字母如下更改此替换:
| 符号 | 使用 |
|---|---|
| g | 用 String 替换指定行中 Pattern 的所有实例。 在被插入后不再扫描 String 中的字符以检查与 Pattern 匹配的字符。 例如,命令:更改:
|
| p | 显示(至标准输出)包含与 Pattern 成功匹配的行。 |
| w FileName | 将包含与 Pattern 成功匹配的行写入 FileName。 如果存在 FileName,它会被覆盖;否则创建它。 在整个编辑过程中最多可以提到 10 个不同的文件作为输入和输出文件。 w 和 FileName 之间要精确地包含一个空格。 |