[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] sed e seus registradores internos
From: |
Thobias Salazar Trevisan |
Subject: |
Re: [shell-script] sed e seus registradores internos |
Date: |
Tue, 21 Oct 2003 21:27:28 -0200 (BRST) |
ae pablo,
On Tue, 21 Oct 2003, Pablo Fernandes wrote:
> sed '/elvis/h ; /presley/H ; /little/x ; /richard/G ;
> /little/g' arquivo
>
> Em ($ls arquivo)
> elvis
> presley
> little
> richard
>
> resulta em:
> elvis
> presley
> elvis
> presley
> little ?
>
> O resultado não era para ser:
>
> elvis
> presley
> elvis
> presley
> richard
> little ?
>
> vendo dessa forma:
> Padrão reserva
> [elvis] h-> [elvis] (sai elvis)
> [presley] H-> [elvis \n presley] (sai presley)
> [elvis \n presley] <-x-> [little] (sai elvis\npresley)
> [richard\nlittle] <-G [little] (sai richard\nlittle)
>
> O que estaria errado?
a última letra do seu sed. em vez de g é h ;)
seu sed:
sed '/elvis/h ; /presley/H ; /little/x ; /richard/G ; /little/g' arquivo
para você ter richard\nlittle após o comando '/richard/G' você
precisa colocar o little no reserva, que vem uma linha antes do
richard.
$ sed '/elvis/h;/presley/H;/little/x;/richard/G;/little/h' arquivo
elvis
presley
elvis
presley
richard
little
Dica: http://sedsed.sf.net
$ sedsed --debug '/elvis/h;/presley/H;/little/x;/richard/G;/little/h'
arquivo | less -r
e deixe o sedsed te mostrar o que ocorre por trás das cortinas :)
falow
thobias
-------
echo 133449562074222244746332132269002206986P | dc
-------
http://thobias.org
____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------