sed:-e表达式#1,字符27:无效的引用\ 1在`s'命令的RHS

时间:2018-03-02 18:02:03

标签: linux sed

echo $variable = {"name":"AAA","username":"BBB"}

我想从上面的输出中仅过滤BBB。我使用了这个sed命令:

sed 's/."username":"(["])".*/\1/')

我正在

  

sed:-e表达式#1,字符27:无效的引用\ 1在`s'命令的RHS

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这只与BBB部分匹配。逃脱你的parens。 假设这是JSON,那么你不会在你正在寻找的值中引用任何引号(因为它引用了分隔符号)所以我将BBB部分与[^"] *匹配起来这是任何不引用的字符数。

variable='{"name":"AAA","username":"BBB"}'
echo "$variable" |sed 's/.*"username":"\([^"]*\)".*/\1/'