我有一个postmaster.log文件,我需要找到模式并更改其值 我需要找到的模式是
MaxValue=3 #this could be any value not just 3
我需要将其值更改为
MaxValue=0
问题是还有像
这样的模式"MaxValueSet=3" and "MaxValue is currently low"
哪些也被替换。我只需要将MaxValue = 3更改为MaxValue = 0 我尝试使用sed
sed -i 's/MaxValue=3/MaxValue=0/g' /home/postmaster.log
但这仅适用于MaxValue = 3的任何其他值,它将无效。
答案 0 :(得分:4)
使用正则表达式捕获MaxValue=
后跟任意数字......
s/MaxValue=[0-9]+/MaxValue=0/g
应该有用。
答案 1 :(得分:2)
这听起来像你想要的
sed -i 's/^MaxValue=.*/MaxValue=0/' /home/postmaster.log
将找到以MaxValue=
开头的所有行,并用MaxValue=0
替换每一行。
答案 2 :(得分:1)
您也可以限制sed
行的工作:
sed -i '/^MaxValue=/s/=[[:digit:]][[:digit:]]*/=0/' /home/postmaster.log