Insere texto dentro da sub-rotina no final da string de dados

1

Eu tenho um arquivo no qual eu preciso fazer o eco do texto no final do arquivo a partir da linha de comando, o problema é que os dados estão em uma sub-rotina, todos dentro de chaves.

Este é o final do arquivo:

text-string1,text-string2,text-string3;
}

Eu preciso inserir texto após o texto string3, mas ainda mantê-lo dentro do ponto-e-vírgula e da chave. Assim:

text-string1,text-string2,text-string3,new-text-string;
}

Qual é a melhor maneira de conseguir isso a partir da linha de comando?

    
por user53029 15.06.2016 / 22:43

2 respostas

2

Pode ser feito, e. com um único sed , mas por uma questão de simplicidade eu usaria tac :

tac file | sed '2s/;$/new-text-string;/' | tac 
    
por 15.06.2016 / 23:04
0
sed -i 's/;$/,new-text-string;/' filename 

Encontrará a última ocorrência do ";" e acrescente os novos dados antes. O -i torna uma alteração in-loco no arquivo a partir da linha de comando.

    
por 15.06.2016 / 23:20