如何在使用多个替换表达式时指示 sed 只替换一次?

sri*_*kit 10 sed regular-expression

我有多个替换规则,但只想使用第一个适用的规则。sed,默认情况下,使用其余规则继续处理输出。第一次换人后怎么破?可以只使用sed吗?我在手册中找不到选项。

实际产量

$ sed "s/something/else/; s/one/two/; s/two/three/;" <<<"one"

three
Run Code Online (Sandbox Code Playgroud)

所需操作

$ sed "s/something/else/; s/one/two/; s/two/three/;" <<<"one"

two
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 17

如果进行了替换,则t在每个命令之后使用命令s分支到脚本的末尾:

sed -e 's/something/else/;t' \
    -e 's/one/two/;t' \
    -e 's/two/three/;t' <<<"one"
Run Code Online (Sandbox Code Playgroud)

在这里,t不需要最后一次替换后的命令,但是如果您自动生成此代码,则让它后缀 each s,甚至最后一个都没有问题。