On Sun, Aug 03, 2014 at 02:18:44AM -0300, Paulo Bettega address@hidden
[shell-script] wrote:
[...]
> Com o comando c não consegui escapar a chave que fecha o grupo de comandos,
> só funcionou quebrando a linha, sem colocar barra no final (deve ser isso
> que está escrito no 'info sed', acho que eu não entendi direito).
[...]
> sed '1,/valor 1/ {/valor 1/ c\valor 1 = 2345\
> valor 2 = asdf\
> valor 3 = zxcv
> }' <<<'texto1.1 {
[...]
> Abraços Paulo Bettega
[...]
A contrabarra permite inserir quebras de linha no texto de saída para o
comando "c", usa-se duas contrabarras para inserir uma contrabarra
literal no texto. No caso acima, a primeira contrabarra poderia ser
removida sem problemas.
Você provavelmente deve ter visto o seguinte erro:
sed: -e expression #1, char 0: unmatched `{'
Tudo é considerado 'TEXT' pelo comando até "que ele encontre" uma quebra
de linha literal sem contrabarra.
Para não ser obrigado e inserir quebras de linha literais em 1liners,
você deve usar a sintaxe:
$ sed -e'1,/valor 1/ {/valor 1/ cvalor 1 = 2345\nvalor 2 = asdf\nvalor 3 =
zxcv' -e'}'
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com