如何使用sed
以便在找到匹配项时,我可以在替换字段中使用它?
例如
echo "12a34" | sed 's/a/#bcd/g'
12abcd34
如何更换#
以获得预期结果?
答案 0 :(得分:4)
使用&
:
echo '12a34' | sed 's/a/&bcd/g'
12abcd34
&
命令的替换子句中的 s///
指的是模式匹配的内容,在这种情况下是a
。
这个特殊情况并没有很好地展示它是如何工作的,因为a
不是一个非常有趣的正则表达式,所以让我添加一个更好的例子:
echo foobar | sed 's/[fb]/&42/g'
f42oob42ar
其中f
和b
由[fb]
匹配,后来被f42
和b42
替换。