Os shell scripts podem ser um grande aliado na hora de poupar tempo e trabalho automatizando tarefas como procedimentos de pós instalação, configurações, dentre outros. É pensando nisso que já publicamos vários artigos aqui no blog com dicas de como criar, personalizar e utilizar estes softwares.

Ao desenvolver os meus próprios scripts, uma coisa da qual senti muita falta era uma forma para poder editar arquivos de texto diretamente através dos próprios scripts, sem que houvesse necessidade de intervenção por parte do usuário. E foi após muita pesquisa que encontrei o comando “sed”.

O comando SED

O comando “sed” foi a solução perfeita para o que eu estava precisando, sendo capaz de editar arquivos de texto de forma automatizada dentro ou fora de shell scripts, todavia, apesar de ser extremamente útil, o “sed” também é um comando que possui uma forma de utilização relativamente complexa, e com pouco conteúdo sobre ele disponível em português.

O objetivo deste artigo é entregar a vocês um conteúdo direto e simplificado ensinando-lhes a utilizar as principais variações do comando “sed”, tendo como foco a edição de arquivos de texto de forma automatizada, dentro ou fora de shell scripts.

Utilizando o comando SED

Na variação do “sed” mostrada abaixo, o comando adicionará “termo1” ao final do arquivo de texto que está localizado em “/home/USER/documento.txt”.

sed -i "\$atermo1" /home/USER/documento.txt

Lembrando que “termo1” deve ser substituído pelo texto que você deseja, e “/home/USER/documento.txt” deve ser substituído pelo caminho do documento que você deseja editar.

No comando abaixo, o “sed” pesquisará dentro do arquivo de texto por todas as palavras “termo1”, e as substituirá por “termo2”.

sed -i 's/termo1/termo2/g' /home/USER/documento.txt

O comando a seguir adicionará uma nova linha, que será a linha no documento de texto, contendo a palavra “termo1”. Neste caso, substitua o número “3” no comando pelo número da nova linha que você deseja adicionar.

sed -i "3i termo1" /home/USER/documento.txt

O próximo comando substitui todas as palavras “termo1” por “termo2” apenas em uma linha específica, escolhida pelo usuário. Neste caso, substitua o número “3” no comando pela linha em que você deseja que a edição seja feita.

sed -i '3s/termo1/termo2/' /home/USER/documento.txt

No comando abaixo o “sed” adicionará “termo1” ao final de uma linha em específico. Mais uma vez, substitua o número “3” no comando pelo número da linha que você deseja editar.

sed -i '3s/$/termo1/' /home/USER/documento.txt

O comando a seguir é bastante semelhante ao anterior, só que ao invés de adicionar a palavra “termo1” ao final da linha, a mesma será adicionada ao início da linha especificada.

sed -i '3s/^/termo1/' /home/USER/documento.txt

O próximo comando remove todas as palavras “termo1” encontradas em uma linha específica, que neste caso é a linha de número “3”.

sed -i '3s/termo1//g' /home/USER/documento.txt

No comando abaixo o “sed” removerá a palavra “termo1”, apenas se essa for a primeira palavra da linha selecionada (neste caso a linha de número “3”). Este comando em particular pode ser bastante útil para descomentar linhas em arquivos de configuração do sistema, substituindo “termo1” por “#”.

sed -i '3s/^termo1//g' /home/USER/documento.txt

Conclusão

Os comandos listados acima são apenas alguns exemplos de uso do comando “sed”, e podem ser utilizados tanto dentro de shell scripts como diretamente pelo terminal.

As variações do “sed” apresentadas neste artigo são aquelas que para o meu uso são as mais úteis, principalmente em scripts de pós instalação, mas nem de longe são tudo o que o “sed” pode nos oferecer.

Caso você queira saber quais seriam as variações corretas do comando “sed” para executar edições não exemplificadas neste artigo, conte pra gente nos comentários abaixo, e quem sabe futuramente possamos trazer outro artigo abordando mais formas de uso para este comando tão útil. 😁

Você gosta de Linux e tecnologia? Tem alguma dúvida ou problema que não consegue resolver? Venha fazer parte da nossa comunidade no fórum Diolinux Plus!

Isso é tudo pessoal! 😉


Newsletter Diolinux
Talvez Você Também Goste