首页 > 解决方案 > 更改值或创建它(如果它不存在)

问题描述

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

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

将 ro.product.brand 价值从“华硕”更改为“三星”的最佳方式是什么?如果此值不存在,则创建它

标签: linuxbashshellsedgrep

解决方案


搜索该值是否存在:

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

请注意,无论其当前值是华硕还是其他任何东西,这都会将值更改为三星,您可以通过限制grep仅匹配与预期值的行来更改它。

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

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

推荐阅读