sed, parte I: O que é e para que serve



Essa apostila / artigo / tutorial tem por objetivo apenas lhe apresentar, de uma forma não muito aprofundada, o programa sed. Você poderá ver a utilidade do sed, fará alguns exemplos simples e saberá, ao término do curso, quando o uso desse programa é uma boa opção.
Tenha em mente que no ramo da Tecnologia de Informação não é possível saber/estudar tudo muito a fundo, pois são muitas coisas.
O ideal é você escolher a área que gosta e se aprofundar nela, tendo um leque de conhecimento e opções, como este curso, para futura referência.
O mais importante é saber que ferramenta usar para cada problema.

parte I: O que é e para que serve
parte II: Enviando dados pro sed
parte III: Selecionando as linhas em que vamos trabalhar
parte IV: Substituindo
parte V: Scripts em sed
parte VI: Expressões Regulares
parte VII: Referenciando com &
parte VIII: Back Reference
parte IX: Hold Space ou Espaço Reserva
parte X: Por onde prosseguir e Considerações Finais
parte XI: Comandos de uma linha só


sed é a sigla para Stream Editor, é um editor que funciona por linha de comando ou em sed e shell scripts.
É uma ferramenta padrão em sistemas tipo Unix (Linux, BSD etc), e foi desenvolvido por Lee E. McMahon, da grande Bell Labs, e foi uma evolução do comando 'grep' aliado a funcionalidade do ed (text editor), precessor do sed.

O sed funciona de forma sequencial, linha por linha.
Você carrega os dados pro sed, através de canalização (pipe, cat) ou passando um arquivo para o mesmo, junto com algumas instruções e o sed devolve o resultado dessas instruções nos dados, sempre por linha, que podem ser salvas no próprio arquivo, redirecionadas pra outro arquivo ou redirecionadas pra outra forma de saída, como serem simplesmente mostradas na tela.

A utilidade do sed é enorme, principalmente com o uso das expressões regulares.
Com o sed você faz edições em textos, acha coisas e substitui, tudo isso de uma forma bem simples com poucos comandos.

Essencial pra quem trabalha com dados, textos, strings, linguagens de programação, HTML etc, pois ele faz edições nos seus arquivos sem a necessidade de abri-los.
Se seus arquivos mantiverem uma certa padronização, facilita bastante a manutenção destes, principalmente códigos-fonte.
Lembrando que os arquivos do Unix, em sua maioria, são textos. Portanto, para estudo e extração de informações do sistema, é uma ferramenta comumente usada.

Inspirou o Perl e é 'parente' do AWK, portanto, se já estudou expressões regulares, já está a mais de meio caminho andado.
O fato de não utilizar variáveis evidencia sua simplicidade e foco.

Quer apagar todos os comentários do seu código? Use sed.
Imagine que você tem um programa com centenas de arquivos ou centenas de páginas em HTML ou PHP e quer adicionar o nome do seu colega, que vai te ajudar no projeto, use sed.
Nesse mesmo projeto, você notou que pode substituir uns trechos do código por outro trecho bem mais simples ou se quiser adicionar algo, e esse trecho buscado está em todos os arquivos, vai abrir arquivo por arquivo e substituir??

Não! Vá de sed!

Um comentário:

VonNaturAustreVe disse...

Parabéns pela "introdução" ao sed, vai ser uma excelente referência em português sobre a ferramenta.

A algum tempo comecei a escrever um artigo divido em algumas partes sobre o sed, mas acabei começando a procrastinar as outras partes do artigo e acabou que não terminei até hoje. Mas vou aproveitar essas férias e revisar o artigo e pelo menos encerrá-lo para poder começar um sobre awk e expressões regulares.


[]'s

Veja também: