我需要替换一个与 string=value 匹配的值,所以这就是我想出的:
echo "some string=oldvalue" | sed 's/\(some string\=\)(.*)/\1newvalue/'
它工作正常,我只是想知道是否有更好,更短的方法来完成同样的事情
TIA
我需要替换一个与 string=value 匹配的值,所以这就是我想出的:
echo "some string=oldvalue" | sed 's/\(some string\=\)(.*)/\1newvalue/'
它工作正常,我只是想知道是否有更好,更短的方法来完成同样的事情
TIA
如果some_string
是一个常数值,只需使用:
sed 's/some string=.*/some string=newvalue/'
根据以下成绩单:
pax> echo "some string=oldvalue" | sed 's/some string=.*/some string=newvalue/'
some string=newvalue
但是您可能需要考虑使用开始标记,这样您就不会拿起其他键:
sed 's/^some string=.*/some string=newvalue/'
如果您想保留该行的其余部分(例如,在空格之后),请使用:
pax> echo "string=old # comment" | sed 's/string=[^ ]*/string=newvalue/'
string=newvalue # comment
这通过将项目限制=
为非空格字符来工作。
如果该值不能包含任何=
s,那么它会更短:
sed 's/=.*/=NEW VALUE/'