更改值或创建它(如果不存在)

时间:2018-12-16 10:27:42

标签: linux bash shell sed grep

我想从build.prop文件中修改一个certan值,如下所示:

ro.product.brand=Asus
ro.product.name=lineage_Z00T
ro.product.device=Z00T

将ro.product.brand价值从“ Asus”更改为“ Samsung”的最佳方法是什么?如果此值不存在,请创建它

1 个答案:

答案 0 :(得分:1)

搜索值是否存在:

grep 'ro.product.brand=' build.prop

修改它:

sed -E 's/(ro.product.brand=).*/\1Samsung/' build.prop

创建它:

echo 'ro.product.brand=Samsung' >> build.prop

完整脚本:

if grep 'ro.product.brand=' build.prop; then
  sed -E 's/(ro.product.brand=).*/\1Samsung/' build.prop
else
  echo 'ro.product.brand=Samsung' >> build.prop
fi

请注意,无论当前值是Asus还是其他值,这都会更改Samsung的值,您可以通过限制grep使其仅与期望值的行匹配来更改它。

请注意,您可以通过删除该行(如果存在)并无条件创建其目标值来大大简化该过程:

sed '/ro.product.brand=/d' build.prop
echo 'ro.product.brand=Samsung' >> build.prop