Trocando letrinhas em segundos (sed)

Publicado por Priscilla Pedde em 24/10/2009

[ Hits: 20.533 ]

 


Trocando letrinhas em segundos (sed)



Galera,

Essa dica escrevi depois que me matei trocando palavra por palavra no sources.list acreditem ou não, pois estava querendo atualizar de Ubuntu Jaunty para Karmic.

Muito simples a dica e fácil de usar. Vamos comentar um pouco sobre a expressão regular sed.

Sintaxe geral:

sed expressão regular [arquivo]

Para entendermos melhor, vamos usar um exemplo que seja aplicável no dia-a-dia.

# sed 's/jaunty/karmic/g' etc/apt/sources.list > teste

Neste exemplo estamos substituindo todas as palavras "jaunty" por "karmic" dentro do arquivo sources.list:
  • "s" substitui
  • "jaunty" é a string origem
  • "karmic" é a string destino
  • "g" geral (todas as palavras jaunty serão substituídas por karmic)

Caso se interessem sobre o assunto, procurem em expressões regulares.

Leitura recomendada: NEVES, Julio Cezar. Programação Shell Linux.

Espero ter ajudado.

Outras dicas deste autor

Criando assinaturas para autenticidade e segurança

Traduzindo Thunderbird para pt_BR na velocidade da luz

Madwifi - Debian Etch

Corrigindo erros no módulo do VirtualBox (Ubuntu)

Links simbólicos e hard links

Leitura recomendada

Configurando temas no Bashtop

OMNI-bot para Enemy Territory - Scripts para facilitar o uso

Formatando números no shell com zeros à esquerda

gxmessage :: shell script incrementado

Arquivo .bashrc

  

Comentários
[1] Comentário enviado por andregondim em 24/10/2009 - 11:22h

Legal a dica, só que acredito que seja melhor fazer update-manager -d é mais seguro que trocar só o sources.list

Abraços,
André Gondim
http://andregondim.eti.br/

[2] Comentário enviado por SMarcell em 25/10/2009 - 00:29h

Só uma correção na sua "dica":

"... Muito simples a dica e fácil de usar. Vamos comentar um pouco sobre a expressão regular sed."

O Sed não é uma expressão regular e sim um programa que opera com ER's.

[3] Comentário enviado por DebianWoman em 26/10/2009 - 08:52h

Valeu pela correção SMarcell.

[4] Comentário enviado por sneves em 27/10/2009 - 08:16h

Interessante.
Não deixa de não ser uma forma de realizar a operação.

Valeu!
[]s

[5] Comentário enviado por rafael.sisweb em 27/10/2009 - 14:36h

Como posso usar o sed para filtrar uma linha específica de um arquivo:
Eu tenho um arquivo de configuração que tem em cada linha uma configuração(não existe delimitador de linha) e eu gostaria de verificar se o valor de uma variável corresponde a uma destas linhas.

algo do tipo existeProibido=`sed -n -r '/(^${teste}$)/p' $proibidos `;

Valew;



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts