sed 替换右侧的“\1”是什么意思?

sed 替换右侧的“\1”是什么意思?

我发布这个问题是因为我无法对 Kusalananda 在此提交的答案添加评论:“key = value”行:如何替换特定键的值?

他提出了以下解决方案:

sed -E 's/^(power[[:blank:]]*=[[:blank:]]*).*/\1something/' TheFile

Q1:“\1”是什么意思?

Q2:当处理带有引号的键值对时,如何修改它?例如

MTU="1500"

- - 编辑 - -

Q3:在尝试 RalfFriedl 的建议时,我发现插入的是变量的名称,而不是值。

sed -E 's/^(MTU[[:blank:]]*=[[:blank:]]*).*/\1$NewMtu/' MyEthFile

答案1

的含义\1是插入第一个括号的值,在这种情况下,介于(power[[:blank:]]*=[[:blank:]]*)

对于第二个问题,您可以使用 的模式MTU="(.*)"并将其替换为\1以获得1500

相关内容