Sed:替换使用匹配的文本

时间:2015-02-25 13:57:43

标签: regex sed

如何使用sed以便在找到匹配项时,我可以在替换字段中使用它?

例如

echo "12a34" | sed 's/a/#bcd/g'
12abcd34

如何更换#以获得预期结果?

1 个答案:

答案 0 :(得分:4)

使用&

echo '12a34' | sed 's/a/&bcd/g'
12abcd34
&命令的替换子句中的

s///指的是模式匹配的内容,在这种情况下是a

这个特殊情况并没有很好地展示它是如何工作的,因为a不是一个非常有趣的正则表达式,所以让我添加一个更好的例子:

echo foobar | sed 's/[fb]/&42/g'
f42oob42ar

其中fb[fb]匹配,后来被f42b42替换。