我发布这个问题是因为我无法对 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
。