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

问题描述 投票:0回答:1
echo $variable = {"name":"AAA","username":"BBB"}

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

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

我正进入(状态

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

我怎样才能解决这个问题?

linux sed
1个回答
1
投票

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

variable='{"name":"AAA","username":"BBB"}'
echo "$variable" |sed 's/.*"username":"\([^"]*\)".*/\1/'
© www.soinside.com 2019 - 2024. All rights reserved.