Pular para o conteúdo

Sed - Introdução

Introdução ao Sed, por meio de exemplos, cobrindo os tópicos: enviando dados pro sed, selecionando as linhas para edição, substituição, scripts em sed, expressões regulares, referências por &, back reference, hold space/ espaço reserva, dicas de comandos, jogos, exemplos e material para prosseguir nos estudos sobre Sed.
jarlisson moreira jarlisson
Hits: 87.990 Categoria: Shell Script Subcategoria: Introdução
  • 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.

Parte 4: Scripts em sed

Caso use com frequência algum comando de sed, você pode salvá-lo na forma de script.

Por exemplo, salve o arquivo: frase.sed

Com o seguinte conteúdo:

s/duende/gnomo/
s/javali/porco/


Para executar, siga este padrão:

sed -f comandos_em.sed arquivo_em_que_se_vai_trabalhar.txt

No nosso caso:

sed -f frase.sed frase.txt

Note que o sed interpreta cada linha como um comando, não sendo necessário estarem entre ' ' (aspas).

Lembre-se que linha não é a linha visível. Você pode escrever 1000 linhas em um editor e estar na primeira linha ainda, embora, visualmente você veja várias.

Para isso ficar bem claro, no Vi/Vim, digite :set nu, no modo comando.

Caso queira tornar seu script executável, adicione isso na primeira linha:

#! /bin/sed -f
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.


Depois, dê permissão para executar:

chmod +x frase.sed

Para executar:

./frase.sed frase.txt

Comentando seus scripts

Uma boa prática em programação, é o uso de comentários.

Servem para explicar melhor uma passagem e não vão afetar a interpretação/compilação do código. É algo de desenvolvedor para desenvolvedor.

Em sed, assim como na maioria das linguagens de script, se utiliza '#' para fazer comentários.

* Uma ressalva: Caso os dois primeiros caracteres de seu script sejam: #n

O sed interpretará como a flag "-n" (não imprimir), anteriormente explicada. Ou seja, tome cuidado caso este seja seu objetivo.

Exemplo:

# Comentário ok
#Comentário ok
#Nesse caso, também
#nesse caso vai dar erro


Inserindo e anexando

Uma maneira de editar seus arquivos é através do comando i (insert, inserindo) e a (append, anexando).

Vamos adicionar os números "-1" e "0" ao início de nosso "teste.txt", e os números "7" e "8" ao final.

Para isso, crie o script: teste.sed

#! /bin/sed -f

1 i\
-1\
0

$ a\
7\
8


O número 1 representa a linha em que vamos inserir.

O $, em expressão regular, significa a última linha do arquivo.

Logo, inserimos "-1" e "0" a partir da primeira linha e "7" e "8", a partir da última.

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.
   1. Introdução - o que é e para que serve
   2. Enviando dados para o sed
   3. Substituindo
   4. Scripts em sed
   5. Expressões regulares
   6. Referenciando com & - Back reference
   7. Hold space
   8. Por onde prosseguir e considerações finais

Shell - Funções

Pipelines (Canalizadores)

LibreOffice Math

AWK - Introdução

Processos

Programação com Shell Script

Mini-tutorial Shell

AWK - Manipulação de arquivos de texto

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Shell Script: Primeiros conceitos

#1 Comentário enviado por eldermarco em 16/07/2012 - 10:53h
Muito bom! Super bem escrito e bastante didático, exatamente como o artigo sobre o AWK que você escreveu. Nota 10!
#2 Comentário enviado por removido em 16/07/2012 - 12:42h
i like too!
#3 Comentário enviado por eduardo em 16/07/2012 - 14:13h
Ótimo artigo! Parabéns! Acabei de perceber que uso menos de 5% do poder do sed. :)
#4 Comentário enviado por sir.guil em 16/07/2012 - 15:05h
Parabéns, era uma coisa que faltava aqui no vol,

sempre que precisei estudar o sed, dependi do http://aurelio.net/sed/

agora estamos + completos
#5 Comentário enviado por julio_hoffimann em 16/07/2012 - 17:56h
Novamente parabéns Jarlisson!

Artigos bastante claros que ajudarão muitos no VOL.

Abraço!
#6 Comentário enviado por marcelo.castro.l em 17/07/2012 - 08:10h
Cara, muito bom esse artigo.
Salvou minha pátria aqui na empresa.
Precisava manipular um arquivo gerado pelo:

#iptables -L

Porém não precisava dele formatado com os espaços, graças ao "sed" tudo fluiu perfeitamente.

Obrigado!
#7 Comentário enviado por H4cktz em 19/02/2019 - 12:09h
Muito bom! Super bem escrito e bastante didático, Nota 1000! Finalmente estou aprendendo SED!

Contribuir com comentário

Entre na sua conta para comentar.