shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] sed expressao regular


From: Paulo Bettega
Subject: Re: [shell-script] sed expressao regular
Date: Sun, 03 Aug 2014 11:30:27 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.0

Olá Ronaldo, essa dica de fechar a chave vale uma dúzia
de cervejas ou o que vc preferir :)
O comando c acha que a chave que fecha é parte do texto,
só consegui quebrando a linha.
Inclusive tentei usar a opção -e, mas desse jeito que vc falou
eu não ia imaginar nunca.

Abraços Paulo Bettega


On 03-08-2014 10:01, Ronaldo Ferreira de Lima address@hidden [shell-script] 
wrote:
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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]