用-r和\ 1替换的sed不能一起使用

时间:2019-09-18 00:30:06

标签: regex sed

$ echo "    <mta abc='1' def='2'>" | sed -r 's/.*\(mta\).*/\1def/g'
sed: -e expression #1, char 21: invalid reference \1 on `s' command's RHS

$ echo "    <mta abc='1' def='2'>" | sed 's/.*\(mta\).*/\1def/g'
mtadef

##有没有一种方法可以使\ 1和-r选项在sed中一起工作

1 个答案:

答案 0 :(得分:0)

使用ERE(扩展正则表达式),您不会逃脱括号,因此可以使用:

echo "    <mta abc='1' def='2'>" | sed -r 's/.*(mta).*/\1def/g'
mtadef