Edite arquivos de texto através de shell scripts utilizando o SED

edite-arquivos-de-texto-atraves-de-shell-scripts-utilizando-o-sed

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
Canonical vai oferecer suporte estendido de segurança para o Ubuntu 14.04 LTS
Continue lendo

Canonical vai oferecer suporte estendido de segurança para o Ubuntu 14.04 LTS

Foi anunciado ontem, dia 19 de Setembro, pela Canonical em seu blog que o Ubuntu 14.04 LTS “Trusty Tahr” terá o pacote de manutenção de segurança estendido oferecido aos seus usuários, permitindo assim que a versão ainda seja utilizada, a medida promete impactar especialmente Corporações, Organizações, Administradores de Sistema e entre outros. O “fim da vida” (EOL) desta versão do Ubuntu acontece em Abril de 2019.
Top 3 melhores apps de captura de tela no Linux
Continue lendo

Top 3 melhores apps de captura de tela no Linux

Há quem prefere simplesmente fazer uma captura de tela, entretanto, outros usuários querem mais. Tem horas que uma mera ilustração não resolve, e você terá que “desenhar” para que o outro não fique com dúvidas. Quase soa como aquele ditado “você quer que eu desenhe?”. Nesses momentos, uma ferramenta com mais recursos é uma boa solução.