Pular para o conteúdo

O programa SED

Dica publicada em Linux / Miscelânea
Diego Rodrigo Machado bestlinux
Hits: 32.657 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

O programa SED

O SED é um programa usado para encontrar e substituir expressões em arquivos. Muito útil para quem trabalha com texto ou programação.

Pode ser utilizado para diversas coisas, como por exemplo, converter um arquivo todo escrito em letras maiúsculas em um outro com a formatação em letras minúsculas.

Abra um editor e digite:

#!/bin/sed - f

s/A/a/g
s/E/e/g
s/I/i/g
s/O/o/g
s/U/u/g

Onde cada uma dessas linhas substitui uma letra maiúscula pela equivalente minúscula. No exemplo, foram colocadas somente as vogais. Descrevendo a linha de comando, seria:
  • /s - é o comando que diz ao SED que ele deve fazer uma substituição;
  • "A" - o "A" maiúsculo é a string de texto a ser substituída;
  • "a" - o "a" minúsculo é a string que substituirá a primeira;
  • "g" - é outro comando que muda para a linha seguinte.

Salve o arquivo e dê a ele permissão de execução.

Agora execute o arquivo:

$ ./converte teste.txt > teste1.txt

Isso fará com que ele leia o arquivo teste.txt e salve as substituições no arquivo teste1.txt. O original é mantido para verificação e modificação posterior.

O SED pode fazer outras coisas, como eliminar códigos de acentuação.

Exemplo:

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
#!/bin/sed - f

s/á/á/g
s/ç/ç/g

O processo é o mesmo usado pelo exemplo anterior.

Para um conteúdo completo sobre o SED, acesse o endereço:
FAQ: http://www.student.northpark.edu/pemente/sed/sedfaq.html

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Modificando a aparência do aterm

Verificando tamanho de arquivos

Resolvendo problemas com HD SATA

Os comandos uncompress e zcat

Instalando o Damn Small Linux no HD

Instalação do Mozilla Firefox

Top personalizado (colorido)

Adicionando controles do xMMs no painel do Gnome

Copiando CD de músicas no Slackware pelo shell

screenFetch no OpenBSD 5.4

#1 Comentário enviado por removido em 08/11/2007 - 21:47h
Boa Noite!!!
Vc saberia me dizer como converter os acentos ?

á para Á
ç para Ç
etc..

Muito Obrigado!!!
#2 Comentário enviado por SMarcell em 21/11/2007 - 17:06h
Exemplo:

$ echo áéíóú | sed 's/áéíóú/ÁÉÍÓÚ/g'

#3 Comentário enviado por removido em 30/10/2011 - 14:25h
na verdade, para converter acentos, o certo seria esse comando:

sed 'y/áéíóú/ÁÉÍÓÚ/g'

porque assim ele vai converter acentos em qualquer ordem
#4 Comentário enviado por costawellington em 07/06/2012 - 17:14h
Vc poderia me dizer como faço para substituir um caracter por "/"
exemplo:

palavra--> 12%2F04%2F2012
nova palavra--> 12/04/2012

trocando o %2F por /
#5 Comentário enviado por removido em 07/06/2012 - 17:57h
@costawellington

Você vai ter que escapar o caractere '/', se não o sed vai pensar que é um caractere especial
Depois você usa o comando 's' dentro do sed, com a seguinte sintaxe?

sed 's/antes/depois/' arquivo.txt

o "antes" é '%2F'
o "depois" é '/'

Daí é só fazer o seguinte comando:

sed 's/%2F/\//' arquivo.txt

Contribuir com comentário

Entre na sua conta para comentar.