sed substituir após caractere de correspondência

3

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")'
    
por John 28.05.2015 / 21:18

2 respostas

3

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
    
por 28.05.2015 / 21:32
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
    
por 28.05.2015 / 21:34