Substituir Texto em Arquivos Linux: Guia Definitivo (Sed & Perl)

Editar arquivos de texto no Linux, de maneira manual, pode ser uma tarefa maçante. Por isso, é muito útil saber como substituir trechos de texto em arquivos usando a linha de comando de forma rápida. Se você é um iniciante no Linux e não sabe como realizar essa operação, nós podemos te ajudar! Acompanhe este guia, onde demonstraremos como substituir uma sequência de texto dentro de um arquivo no Linux!

Substituindo Textos em Arquivos: Usando o Sed

O utilitário sed é a ferramenta ideal para substituir uma sequência de texto em um arquivo no Linux. O motivo? É simples de usar e executa sua função de maneira eficiente. O sed geralmente já está instalado em quase todos os sistemas operacionais Linux, então não há necessidade de instalá-lo para utilizá-lo.

A substituição de um trecho de texto em um arquivo com o sed é feita através do comando sed -i. Veja como utilizá-lo. Primeiramente, abra uma janela de terminal no seu ambiente Linux. Você pode abrir o terminal pressionando Ctrl + Alt + T no seu teclado.

Assim que a janela do terminal estiver aberta e pronta para uso, digite sed -i no prompt. Este é o início do comando de substituição.

sed -i

Após digitar o comando sed -i, adicione uma aspa simples '. Essa aspa é crucial, já que todo o texto a ser substituído pelo sed -i precisa começar após essa marca.

sed -i '

Após a primeira aspa, digite s/. O s/ vem diretamente antes do texto existente que você deseja alterar usando o sed.

sed -i 's/

Agora que s/ está escrito no terminal, é hora de indicar ao sed qual texto deve ser substituído no arquivo. Neste exemplo, vamos substituir a palavra “maçã”.

sed -i 's/apple

Com o texto que desejamos substituir inserido no comando, o próximo passo é inserir o novo texto que o substituirá. Neste exemplo, substituiremos “maçãs” por “laranjas”.

sed -i 's/apples/oranges

Após o texto a ser substituído (laranjas) ter sido adicionado ao comando, finalize-o com g/. O g/ instrui o sed a substituir todas as ocorrências do texto (maçãs) pelo novo texto (laranjas). O resultado deverá ser semelhante ao exemplo abaixo.

Observação: Se você não deseja substituir todas as ocorrências do texto no arquivo (por exemplo, de maçãs para laranjas), remova o g e execute o comando como sed -i 's/maçãs/laranjas/'.

sed -i 's/apple/orange/g'

Finalmente, informe ao sed em qual arquivo está localizado o texto que precisa ser substituído. Neste exemplo, o arquivo fruit.txt, presente no diretório inicial, será o alvo.

sed -i 's/apples/oranges/g' ~/fruit.txt

Pressione a tecla Enter para executar o comando e substituir o trecho de texto no arquivo.

Substituindo Textos em Arquivos: Usando Perl

Outra forma de substituir um trecho de texto em um arquivo no Linux é através da linguagem de programação Perl. Perl é amplamente usado para o processamento de texto, o que o torna uma ferramenta perfeita para a substituição de textos em arquivos.

Para iniciar, certifique-se de que o Perl está instalado no seu computador Linux. A maioria dos sistemas operacionais Linux já vem com o Perl instalado. Entretanto, caso não esteja, verifique a documentação do seu sistema operacional para obter informações sobre como realizar a instalação.

Para usar o Perl para substituir textos em um arquivo, você precisará do terminal. Abra um terminal no seu ambiente Linux pressionando Ctrl + Alt + T no teclado. Ou procure por “Terminal” no menu de aplicativos e inicie-o por lá.

Assim que a janela do terminal estiver aberta, comece digitando perl -pe no prompt de comando. O comando perl -pe é o necessário para substituir um texto em um arquivo.

perl -pe

Ao digitar perl -pe no terminal, você precisará iniciar com a primeira aspa simples '. Essa marca indica ao Perl onde começa a área de substituição de texto no comando.

perl -pe '

Após a primeira aspa ', adicione s/, seguido pelo texto que você deseja substituir e outra /. Por exemplo, para substituir “maçãs” no arquivo fruit.txt, você escreveria o seguinte texto.

perl -pe 's/apples/

Depois de digitar a(s) palavra(s) que você deseja substituir, adicione a palavra que substituirá o texto existente. Por exemplo, se você quer substituir “maçãs” em “fruit.txt” por “laranjas”, adicione “laranjas” após perl -pe 's/maçãs/ de modo que fique parecido com perl -pe 's/maçãs/laranjas/.

perl -pe 's/apples/oranges/

Depois que as duas sequências de texto estiverem no comando, você precisará especificar o arquivo de entrada que o Perl usará. Por exemplo, se você deseja substituir o texto no arquivo “fruit.txt”, precisará especificá-lo no comando.

Observação: Neste exemplo, o arquivo “fruit.txt” está no diretório inicial (~/). Certifique-se de substituir “~ /fruit.txt” pelo local do seu arquivo de texto para que o comando funcione.

perl -pe 's/apples/oranges/' ~/fruit.txt

Agora que o arquivo de entrada (o arquivo que você está modificando com Perl) foi adicionado ao comando, o comando deverá ter a seguinte aparência.

perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt

Quando o comando acima for executado, o trecho de texto será substituído pelo novo texto que você especificou. Em nosso exemplo, substituímos “maçãs” por “laranjas”. Para visualizar as alterações, digite o comando abaixo.

cat fruit.txt