[英]shell script find and replace in file
我有一个文件postmaster.log,我需要在其中找到模式并更改其值。我需要找到的模式是
MaxValue=3 #this could be any value not just 3
我需要将其值更改为
MaxValue=0
问题是也有类似的模式
"MaxValueSet=3" and "MaxValue is currently low"
我也只需将sed尝试将MaxValue = 3更改为MaxValue = 0
sed -i 's/MaxValue=3/MaxValue=0/g' /home/postmaster.log
但这仅在MaxValue = 3表示任何其他值时才起作用,它将不起作用。
使用正则表达式来捕获MaxValue=
后跟任意数字...
s/MaxValue=[0-9]+/MaxValue=0/g
应该管用。
听起来像你想要的
sed -i 's/^MaxValue=.*/MaxValue=0/' /home/postmaster.log
它将找到以MaxValue=
开头的所有行,并用MaxValue=0
替换每行。
您也可以限制sed
的行数:
sed -i '/^MaxValue=/s/=[[:digit:]][[:digit:]]*/=0/' /home/postmaster.log
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.