1. Home
  2. VPS Locaweb
  3. Como usar o comando sed no Linux?

Como usar o comando sed no Linux?

O sed, no Linux, é uma ferramenta para manipulação de texto que permite a edição de arquivos diretamente da linha de comando.

Uma abreviação de “Stream Editor”, o comando sed é amplamente usado para substituir texto, deletar linhas, acrescentar ou escrever novas informações. Tudo isso sem a necessidade de abrir o arquivo em um editor tradicional.

Conheça alguns comandos básicos, além de exemplos práticos, como instalá-lo e o seu fluxo de trabalho.

Veja quais são os comandos sed básicos

Os comandos básicos do sed permitem operações comuns, como deletar, escrever, acrescentar e ler conteúdo em arquivos.

Deletar

O comando sed permite deletar linhas específicas de um arquivo de texto. Essa função é eficaz para limpar arquivos, textos duplicados, entre outros.

Para executar esse comando, você deve utilizar d junto com o nome do arquivo entre aspas. Assim, você decide qual linha do arquivo quer deletar.

Por exemplo, para deletar a terceira linha de um arquivo, você pode usar o comando: sed ‘3d’ text.txt.

Nesse exemplo, o “3d” indica que a terceira linha (3) será deletada (d). É possível deletar múltiplas linhas ao especificar um intervalo, como “3,5d”, que deletará da linha 3 até a 5.

Caso você queira apagar apenas uma palavra, é possível utilizar um comando para simplificar essa ação.

Por exemplo, se você quer apagar a palavra “sleep”, basta utilizar o comando:

sed‘/sleep/d’ script.sh.

Desse modo, você apagará apenas a palavra desejada, sem a necessidade de apagar todo o conteúdo.

Escrita

O comando sed também pode ser usado para escrever novas linhas em um arquivo. Para isso, utilize w, seguido pelo número da linha e do arquivo, entre aspas. Veja o comando que lê a segunda linha e a escreve no arquivo selecionado:

 sed '2~2 w text2.txt' text.txt.

Nesse caso, a nova linha será adicionada após a segunda linha do arquivo. Esse comando é útil para acrescentar comentários ou informações sem alterar o conteúdo original.

Acrescentar

Vamos criar um arquivo chamadoconfig.txt”, que serve para configurar um site em um servidor. Nesse arquivo, já temos algumas informações, como:

    • A porta que o servidor vai usar (no caso, Port 80, que é a porta padrão para sites);
    • O nome do site (neste exemplo,example.com”).

Agora, precisamos acrescentar uma informação: o diretório raiz, que é basicamente o local no computador no qual estão guardados os arquivos do site.

Para fazer isso, vamos adicionar uma nova linha ao arquivo, logo após a linha com o nome do site.

O comando que usamos para isso é:

 sed ‘/ServerName/a\DocumentRoot /var/www/html’ config.txt.

Esse comando vai procurar o local em que está escrito “ServerName” e colocar a linha DocumentRoot /var/www/html logo abaixo.

No final, o arquivo vai ficar assim:

    • Port 80;
    • ServerName example.com;
    • DocumentRoot /var/www/html.

Essa última linha indica que os arquivos do site estão na pasta “/var/www/html”. O comando sed só foi usado para adicionar essa linha no lugar certo, sem precisar editar o arquivo manualmente.

Leitura

Vamos usar um comando que utiliza o conteúdo de um arquivo de texto (chamado “text.txt”) e o coloca dentro de outro arquivo (chamado “text2.txt”). Vamos inserir o conteúdo logo após a terceira linha do “text2.txt”.

O comando correspondente é o:

sed '3 r text.txt' text2.txt.

Aqui, o número “3” significa que o conteúdo de “text.txt” será colocado depois da terceira linha do “text2.txt”.

Após rodarmos esse comando, se olharmos o arquivo “text2.txt” (com outro comando, como o cat), veremos que ele, agora, tem o conteúdo de “text.txt” inserido logo após a terceira linha.

Ou seja, o comando faz o seguinte:

    1. Pega o conteúdo do “text.txt”;
    2. Insere esse conteúdo logo após a terceira linha do “text2.txt”.

O objetivo é juntar o conteúdo de dois arquivos de uma forma bem específica.

Confira alguns exemplos de uso do sed

O sed pode ser usado em diversos cenários. Abaixo, estão alguns exemplos práticos que ilustram o seu uso no dia a dia.

    • Substituição de texto: para substituir todas as ocorrências de “Linux” por “GNU/Linux” em um arquivo:
sed 's/Linux/GNU\/Linux/g' arquivo.txt

— o comando “s” é usado para substituição e o “g”, no final, indica que todas as ocorrências devem ser substituídas;

    • Excluir linhas vazias: para deletar todas as linhas vazias de um arquivo:
sed '/^$/d' arquivo.txt

— aqui, o “^$” identifica linhas vazias e o “d” as deleta;

    • Adicionar prefixo a cada linha: para adicionar um prefixo “#” em cada linha de um arquivo (útil para comentar um script), use:
sed 's/^/# /' arquivo.txt;
    • Substituir texto em várias linhas: para substituir a palavra “erro” por “ERRO” nas linhas 10 a 20, por exemplo:
sed '10,20s/erro/ERRO/g' arquivo.txt

— esse uso específico é excelente para destacar seções de logs ou relatórios.

Instalação do sed

O sed, geralmente, já vem instalado em distribuições Linux. No entanto, caso não esteja disponível, você pode instalá-lo facilmente.

    • Acesse o seu VPS Linux;
    • No Ubuntu ou Debian, use:
 sudo apt-get install sed;
    • Em distribuições baseadas no Red Hat, como o Fedora, o comando é:
sudo yum install sed;
    • Após a instalação, você pode confirmar se o sed funciona corretamente com o comando:
sed --version.

Sed Workflow

Para utilizar o sed de forma eficiente, é importante entender o seu fluxo de trabalho. O sed lê um arquivo linha por linha, aplica os comandos especificados e imprime o resultado. Isso permite editar arquivos grandes sem carregar o arquivo inteiro na memória, o que é um diferencial para scripts de automação.

De maneira resumida, o workflow do sed é assim:

    1. Leitura: o sed lê a entrada do arquivo ou stream;
    2. Aplicação dos comandos: ele aplica os comandos especificados (substituição, deleção, entre outros);
    3. Impressão: imprime o resultado modificado, que pode ser redirecionado para um arquivo de saída.

Um exemplo de workflow básico seria:

sed 's/velho/novo/g' arquivo.txt > arquivo_modificado.txt.

Esse comando substitui “velho” por “novo” emarquivo.txt” e salva o resultado em “arquivo_modificado.txt”.

Agora que você já sabe como usar o sed, aproveite também para conhecer outros comandos Linux importantes!

Este artigo foi útil ?

Artigos relacionados