使用字符串替换

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子串匹配的输入行中的字符集。 子串以字符 \ 开头 (以字符 \ 结尾)。 例如,命令:
s/\(stu\)\(dy\)/\1r\2/
发件人:
The study chair
收件人:
The sturdy chair

作为标记出现的字母如下更改此替换:

符号 使用
g String 替换指定行中 Pattern 的所有实例。 在被插入后不再扫描 String 中的字符以检查与 Pattern 匹配的字符。 例如,命令:
s/r/R/g

更改:

发件人:
the red round rock
收件人:
the Red Round Rock
p 显示(至标准输出)包含与 Pattern 成功匹配的行。
w FileName 将包含与 Pattern 成功匹配的行写入 FileName。 如果存在 FileName,它会被覆盖;否则创建它。 在整个编辑过程中最多可以提到 10 个不同的文件作为输入和输出文件。 wFileName 之间要精确地包含一个空格。