Измените значение или создайте его, если оно не существует - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу изменить значение certan из файла build.prop, который выглядит следующим образом

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

Каков наилучший способ изменить значение ro.product.brand с «Asus» на «Samsung».И если это значение не существует, то создайте его

1 Ответ

0 голосов
/ 16 декабря 2018

Поиск, если значение присутствует:

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

Обратите внимание, что это изменит значение на Samsung независимо от того, является ли его текущее значение Asus или любым другим, вы можете изменить это, ограничив grep, чтобы он соответствовал только строке с ожидаемым значением.

Обратите внимание, что вы можете значительно упростить процесс, удалив строку, если она есть, и безоговорочно создав ее с целевым значением:

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