sed (abreviação de stream editor: 'editor de fluxo') é um utilitário Unix que analisa e transforma textos, usando uma linguagem de programação simples e compacta. Tal como o awk, é um programa que permite aplicar diferentes transformações predefinidas a um fluxo sequencial de dados textuais, sendo muito utilizado nos sistemas tipo Unix.

O sed, desenvolvido entre 1973 e 1974 por Lee E. McMahon, do Bell Labs,e atualmente está disponível para a maioria dos sistemas operacionais foi baseado nos recursos de scripting do editor interativo ed (editor, de 1971) e do anterior qed (quick editor, de 1965-66). O sed foi uma das primeiras ferramentas a suportar expressões regulares e continua em uso para processamento de texto, principalmente com o comando de substituição. Entre as ferramentas alternativas populares para manipulação de strings de texto, em texto claro e edição de fluxo contínuo, estão AWK e Perl.

Ao contrário dos editores convencionais, o sed atua em linha de comandos ou em shell script. Pode, por exemplo, editar a terceira linha de vários arquivos com um só comando.

Geralmente, o sed recebe como entrada, por meio de uma canalização, os dados sobre os quais irá atuar. Aceita expressões regulares, o que lhe confere maior poder e o torna um excelente insrumento para administradores de sistemas.

Há uma versão do sed GNU/sed com alguns recursos extras.

Alguns exemplos apagar a última linha de vários arquivos txt: sed -i '$d' *.txt Extrair a 4ª linha do ficheiro: cat ficheiro.txt | sed '4q;d' ou sed '4q;d' ficheiro.txt Substituições de texto (substituir as vírgulas [,] por hífens[-]): cat ficheiro.txt | sed 's/,/-/g' ou sed 's/,/-/g' ficheiro.txt Pegar somente o endereço de retorno nslookup a.root-servers.net | tail -n 2 | head -n 1| sed s/Address:\ \//

Conceito sobre Editores de Streams Imagine streams como um arquivo sendo lido linha a linha. Os editores de streams atuam em cada linha a procura de um padrão definido.

Ligações externas sed-HOWTO E-book Dominando o SED

Categoria:Linguagens de programação Categoria:Linguagens interpretadas Categoria:Programas padrões do Unix Categoria:Programas Unix Categoria:Compiladores Categoria:Compiladores e interpretadores livres