O sed é uma ferramenta GNU para tratamento de textos. É possível fazer operações sobre arquivos textuais e saídas de outros programas. Para usar o sed é recomendável saber um pouco de expressões regulares para encontrar padrões, mas é possível usá-lo com simples strings.
Para as experiências a seguir, será usado um arquivo texto com alguns nomes de pessoas, chamada nomes.txt, que contém dois nomes por linha. As alterações feitas pelo sed não persistem no arquivo sem a opção -i, então o mesmo arquivo será usado para todos os comandos.
[~] cat > nomes.txt <<- DONE Guilherme Sofia Gustavo Maria Lucas Beatriz Enzo Camila Vinicius Amanda Joao Bruna Eduardo Isabela Bruno Ana DONE
Apagar linhas
Em um script para o sed a letra d significa a deleção de uma linha.
Apagar a linha número 2
[~] sed -e '2d' nomes.txt Guilherme Sofia Lucas Beatriz Enzo Camila Vinicius Amanda Joao Bruna Eduardo Isabela Bruno Ana
Apagar da linha 1 até a linha 3 (inclusive)
[~] sed -e '1,3d' nomes.txt Enzo Camila Vinicius Amanda Joao Bruna Eduardo Isabela Bruno Ana
Apagar da linha 3 (inclusive) até o fim do arquivo
[~] sed -e '3,$ d' nomes.txt Guilherme Sofia Gustavo Maria
Apagar linhas com o primeiro nome terminando em o
Padrões no sed devem ficar entre duas barras /.
[~] sed -e '/^\w\w*o /d' nomes.txt Guilherme Sofia Lucas Beatriz Vinicius Amanda
Apagar da linha que começa com Lucas até a linha que termina com Amanda
[~] sed -e '/^Lucas/,/Amanda$/d' nomes.txt Guilherme Sofia Gustavo Maria Joao Bruna Eduardo Isabela Bruno Ana
Apagar a linha que termina com Beatriz e também a próxima linha
É possível realizar mais de um comando para o mesmo padrão que o sed encontrou no texto de entrada. Os comandos ficam entre chaves. O comando N seleciona a linha seguinte junto a linha do padrão encontrado para serem apagadas pelo comando d.
[~] sed -e '/Beatriz$/{ N; d }' nomes.txt Guilherme Sofia Gustavo Maria Vinicius Amanda Joao Bruna Eduardo Isabela Bruno Ana