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,[1][2] 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
Predefinição:Esboço-computação
- ↑ «The sed FAQ, Section 2.1»e atualmente está disponível para a maioria dos sistemas operacionais
- ↑ «The sed FAQ, Section 2.2»