1 sed com diversas regras [RESOLVIDO]

1. 1 sed com diversas regras [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/03/2010 - 03:43h

como eu faço para remover uma plava especifica e espaços de uma linha??

ex:
echo 'teste a b c d e' | sed -e 's/[ ],'teste'//g'

nesse caso queria que aparecesse somente abcde


  


2. MELHOR RESPOSTA

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 14/03/2010 - 09:25h

1) Você pode usar o ';' que nem você fez:

sed 's/ //g ; s/teste//g' arquivo.txt

2) Você pode usar a opção -e no lugar do ';' :

sed -e 's/ //g' -e 's/teste//g' arquivo.txt

Acho que dessa forma fica mais fácil de ler.

3) Uma outra maneira é trabalhar em cima da regexp: Deletar espaços ou a palavra teste:

sed -r 's/ |teste//g' arquivo.txt

Obs: Ao usar as duas primeiras formas em uma linha como:

$ echo 'teste a b c d t e s t e' | sed 's/ //g ; s/teste//g'

A saída será: abcd e não abcdteste (se era isso que você queria). Isso ocorre porque você retira
os espaços primeiro (aí uma nova palavra "teste" é formada) e depois deleta todas as ocorrências
da palavra "teste" no buffer de leitura. Um modo de corrigir isso é utilizar a forma 3) ou
simplesmente inverter a ordem de deleção: Deletar primeiro a palavra teste e depois os espaços.

Acho que é isso.
t+

3. Re: 1 sed com diversas regras [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/03/2010 - 03:45h

soh consegui assim

echo 'teste a b c d e' | sed -e 's/[ ]//g;s/teste//g'

teria alguma forma mais limpa??


4. Re: 1 sed com diversas regras [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 14/03/2010 - 20:55h

vlw xD






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts