Você tem procurado por outra maneira de realizar operações de edição em textos? Não procure mais! Este tutorial tem tudo o que você precisa com exemplos do editor de fluxo sed.
Em poucas palavras, o sed permite que você faça uma ampla gama de edições em arquivos e fluxos de texto de forma não interativa. Você toma as decisões de edição conforme chama os comandos. E neste tutorial, você aprenderá como usar os comandos do sed e otimizar efetivamente seu fluxo de trabalho.
Continue lendo e aprimore suas habilidades na linha de comando!
Pré-requisitos
Assegure-se de ter o seguinte para acompanhar a demonstração prática neste tutorial:
- A command line interface (e.g., Terminal on macOS or Linux) – This tutorial uses Ubuntu Linux 20.04, but the commands should work on most popular operating systems.
- A text editor (e.g., nano, vi, or Sublime Text) – This tutorial uses Nano.
Instalando o sed no Ubuntu
O sed geralmente está incluído como uma utilidade padrão na maioria dos sistemas operacionais semelhantes ao Unix, incluindo Linux e macOS. Mas, de qualquer forma, verificar se você já tem o sed no seu sistema seria adequado e é um procedimento básico antes de realizar transformações de texto.
1. Abra seu terminal e execute o comando sed
abaixo para verificar qual versão do sed está instalada no seu sistema.
Se o sed estiver instalado, você verá o número da versão do sed e algumas informações sobre a compilação, como mostrado abaixo.

Otherwise, you will see the error message below if sed is not installed.
Esta mensagem de erro indica que o comando sed
não foi encontrado na variável de ambiente PATH do seu sistema.

2. Em seguida, execute o comando [apt-get update
abaixo para atualizar e instalar o sed
no seu sistema.
Este comando busca as informações mais recentes do pacote nas fontes de pacotes configuradas, incluindo as dependências, arquivos e scripts do pacote. Executar este comando é necessário para garantir a instalação da versão mais recente do sed e de quaisquer outros pacotes que você possa precisar.

3. Por último, execute o seguinte comando para verificar se o comando sed
está instalado no seu sistema.
Este comando imprime o caminho completo para o executável do sed, que neste exemplo é /usr/bin/sed.
Depois de instalar o sed e verificar que está no seu PATH, você pode usar o sed
comando para realizar várias transformações e manipulações de texto.

Substituindo Strings em um Arquivo de Texto
O sed é um editor de fluxo popular disponível na maioria dos sistemas operacionais semelhantes ao Unix, e uma das características mais úteis do sed é substituir strings em um arquivo de texto.
Abaixo estão alguns cenários, mas não limitados a, nos quais substituir strings é útil:
- Atualizando uma lista de URLs para refletir um novo nome de domínio.
- Alterando IDs de produtos em um banco de dados ou arquivo CSV.
- Formatando dados para importação em outro sistema e muito mais.
A sintaxe básica para usar o sed é a seguinte, onde:
Placeholder | Function |
---|---|
command | Controls sed’s behavior. |
options | Allows you to customize the behavior of the sed command |
input_file | Specifies the file or text stream that you want to edit. Typically, you can specify a single file or stream, but concatenating multiple files or streams by redirection also works. |
output_file | Specifies the file that contains the results of your sed command. The file can be new or the same as input_file, depending on how you use sed. |
Suponha que você tenha um arquivo de texto chamado urls.txt
que contenha uma lista de URLs e queira atualizar todos os URLs para usar um novo nome de domínio.
1. Execute os comandos echo
abaixo para criar o arquivo urls.txt
no diretório atual. Esses comandos não geram saída, mas escrevem textos especificados no arquivo.
2. Em seguida, execute o comando cat
para visualizar o conteúdo do arquivo urls.txt. cat urls.txt
A saída abaixo confirma os três URLs antigos escritos no arquivo urls.txt.

3. Agora, execute o comando abaixo para localizar e substituir (s
) todas as ocorrências da string old-domain.com
por new-domain.com
no arquivo urls.txt
.
Você verá que os URLs no seu arquivo de entrada foram atualizados com o novo domínio, como mostrado.

Substituindo a N-ésima Ocorrência de uma String
Além da funcionalidade básica de pesquisa e substituição, o sed possui comandos embutidos adicionais que permitem realizar transformações de texto mais complexas. Um exemplo é substituir a n-ésima ocorrência da string de padrão em uma única linha de texto.
Por exemplo, se você deseja atualizar o segundo campo em um arquivo CSV com um novo valor ou atualizar a terceira ocorrência de uma string em um despejo de banco de dados.
A sintaxe básica para este comando é a seguinte onde:
padrão
– é a sequência a ser substituída.substituição
– é a sequência a ser usada como substituição.n
– is the nth occurrence of the string to replace (e.g.,1
=first occurrence,2
=second occurrence…).
Para ver como substituir a n-ésima ocorrência de uma sequência, siga estes passos:
Execute o seguinte comando echo
para criar uma linha de texto com três ocorrências do padrão rápido
. O comando sed
então substitui (s
) a segunda ocorrência (2
) do padrão rápido
pela sequência rápido
.
Como você pode ver abaixo, apenas a segunda ocorrência do padrão rápido foi substituída pela sequência rápido, enquanto todas as outras ocorrências permanecem inalteradas.
O comando nth
é sensível a maiúsculas e minúsculas por padrão. Como resultado, o comando procura apenas a correspondência exata do padrão. Para ignorar a diferenciação entre maiúsculas e minúsculas do padrão, siga para o próximo passo.

? Observe que o comando
nth
conta as ocorrências do padrão da esquerda para a direita. Além disso, o comandonth
funciona apenas em uma única linha de texto. Para realizar uma substituição em várias linhas, use um método diferente demonstrado na próxima seção.
Em seguida, execute o comando abaixo para substituir a segunda (2
) ocorrência do padrão rápido
por rápido
ignorando (i
) a diferenciação entre maiúsculas e minúsculas.
A opção i
é útil ao trabalhar com texto com capitalização inconsistente.
Na saída abaixo, a segunda ocorrência da palavra rápida (QuiCk) é substituída com sucesso pela string rápida — independentemente do caso da letra.

Substituindo Todas as Ocorrências de um Padrão/String Correspondente
Em vez de substituir a enésima ocorrência de uma string, talvez você planeje substituir todas as suas ocorrências. Fazê-lo ajuda dramaticamente com seu plano de atualizar em massa todas as ocorrências de uma string de Direitos Autorais com o ano atual, por exemplo.
1. Crie um arquivo chamado input.txt com o seguinte conteúdo em seu editor de texto preferido.
This is a quick test.
The quick brown fox jumps over the lazy dog.
Quick, you need to finish this task before it gets too late.
2. Em seguida, execute o seguinte comando para substituir (s
) todas as ocorrências da palavra rápida
por rápida
do arquivo input.txt
. Uma vez substituídas, as mudanças são escritas no arquivo output.txt
.
3. Agora, execute o comando abaixo para visualizar o conteúdo do arquivo output.txt
e verificar se a substituição foi feita.
Você verá todas as ocorrências da palavra rápida foram substituídas por rápida, como mostrado abaixo. Semelhante ao comando nth
, o comando g
é sensível a maiúsculas e minúsculas e substitui apenas as correspondências exatas.
A string Quick não será substituída, como mostrado abaixo, mas você pode usar a opção i
para realizar substituições sem diferenciar maiúsculas de minúsculas.

Substituindo um Padrão de Correspondência de String em uma Linha Específica
Talvez já saibas em que linha da string queres fazer a substituição. Por que substituir todas as ocorrências se podes substituir strings em linhas específicas? Esta funcionalidade é útil ao fazer alterações numa linha específica num ficheiro ou fluxo, mas deixando as outras linhas intactas.
Abaixo está a sintaxe para substituir uma string a partir de uma linha específica, onde n
representa o número da linha.
1. Cria um ficheiro chamado myfile.txt com o seguinte conteúdo.
test1
test2
test3
2. Em seguida, executa o comando sed
abaixo para realizar o seguinte:
- Procurar a palavra
test2
a partir da segunda linha (2
) do ficheiromyfile.txt
. Substituir (s
) a palavratest2
portest2_changed
. Escrever as alterações (>
) para um novo ficheiro chamadomyfile_changed.txt
.
This command does not provide output to the terminal since the changes are written to a new file. But you will verify the changes in the following step.
3. Por fim, executa o comando cat
abaixo para visualizar o conteúdo do ficheiro myfile_changed.txt
.
Como podes ver abaixo, a segunda linha do ficheiro myfile.txt foi substituída por test2_changed, enquanto todas as outras linhas permanecem inalteradas.

Exclusivamente Exibindo Linhas Alteradas de Strings
Em vez de imprimir todo o conteúdo de um ficheiro após fazer alterações, podes querer imprimir exclusivamente as linhas alteradas. Como? Usando a opção p
juntamente com a opção -n
.
Abaixo está a sintaxe para imprimir exclusivamente as linhas alteradas de strings onde:
- A opção
-n
diz aosed
para suprimir o comportamento padrão de imprimir cada linha. - A bandeira
p
indica aosed
para imprimir a saída do comando.
Abra seu arquivo myfile.txt e substitua o conteúdo pelo seguinte. Observe que a segunda linha está incorreta, pois a palavra first
deveria ser second
.
This is the first line of my file.
This is the first line of my file.
This is the third line of my file.
Agora, execute o comando sed
abaixo para substituir a string first
por second
na segunda linha (2
) do arquivo myfile.txt
, mas apenas imprima as linhas modificadas (p
).
Você verá a saída da segunda linha modificada apenas no seu terminal, conforme mostrado abaixo.

Conclusão
Neste tutorial, você utilizou diferentes exemplos de uso do sed para realizar operações de busca e substituição. Além disso, abordou técnicas mais avançadas, como substituir ocorrências específicas e imprimir apenas as linhas modificadas.
O sed é uma poderosa ferramenta de linha de comando que permite realizar diversas tarefas de manipulação de texto. Seja fazendo substituições globais em um arquivo inteiro ou substituições direcionadas em linhas específicas, o sed resolverá o problema.
Agora, que tal explorar mais sobre expressões regulares? Expressões regulares são essenciais para muitas ferramentas de manipulação de texto, incluindo o sed. Essas expressões economizam tempo e reduzem esforços. Quando? Ao realizar buscas complexas e operações de substituição em grandes quantidades de texto.