Isso deve funcionar para o seu caso:
sed -ri 's/^(ro\.product\.firmware\=)(.*)$/'"$1"'/g' file.txt
Aqui,
-r ==> for using extended regex
==> for the first captured group
Eu tenho que alterar um arquivo de propriedades que contém a propriedade:
ro.product.firmware=0.0.1
com um novo valor que vem de uma função chamada em uma seção diferente do meu script bash. Não consigo fazer com que o regex funcione corretamente. Para este caso em particular, preciso que o valor seja alterado de 0.0.1 para $ 1, mas o valor nem sempre será 0.0.1. O regex que eu tenho atualmente é:
sed -i 's/^(ro\.product\.firmware).*$/(ro\.product\.firmware="$1")'
#!/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
Tags sed shell shell-script