Como posso modificar o texto dentro de aspas simples?

2

Eu tenho um arquivo que contém estas linhas:

war {
    baseName = 'myApp'
    version = '1.0.2'
}

e uma variável como:

variable=b123

Eu quero editar o arquivo anexando o valor $ variable ao número da versão para que o resultado seja:

war {
    baseName = 'myApp'
    version = '1.0.2_b123'
}

Como alcançar esse objetivo com um script bash ?

    
por sgargel 20.04.2017 / 14:29

2 respostas

6

Seria um simples sed fazer?

$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'$var'/" file 
war {
    baseName = 'myApp'
    version = '1.0.2_b123'
}

( /version/ verifica se a linha contém essa cadeia, se usar s ubstitute uma cadeia dentro de aspas simples com a mesma cadeia ( (...) captures, restaurações) mais o texto na variável. A citação não é um problema aqui, já que tudo o que precisamos está seguro entre aspas duplas.)

    
por 20.04.2017 / 14:33
0

Se você gosta de vim, isso funciona:

vim +/version +"norm 2f'i_b123" +x file

Isso abre o arquivo e executa três comandos:

  • vá para a primeira linha que contém "versão"

  • entra no modo normal, vai para o segundo ' , vai para o modo de inserção, insere _b123

  • escreva e saia

por 21.04.2017 / 01:57