sed 在匹配字符后替换

sed 在匹配字符后替换

我必须更改包含该属性的属性文件:

ro.product.firmware=0.0.1 

具有来自 bash 脚本的不同部分中调用的函数的新值。我无法让正则表达式正常工作。对于这种特殊情况,我需要将值从 0.0.1 更改为 $1,但该值并不总是 0.0.1。我目前拥有的正则表达式是:

sed -i 's/^(ro\.product\.firmware).*$/(ro\.product\.firmware="$1")'

答案1

这应该适用于您的情况:

sed -ri 's/^(ro\.product\.firmware\=)(.*)$/\1'"$1"'/g' file.txt

这里,

-r ==> for using extended regex
\1 ==> for the first captured group

答案2

#!/bin/bash

#some logic

export value=$(some_function)
#note the export

#more code

perl -ie 's/^ro\.product\.firmware.*$/ro.product.firmware=$ENV{value};'

#yada yada yada

相关内容