Como anexar texto a um arquivo usando o Bash

Suraj Joshi 30 janeiro 2023
  1. Anexar texto a um arquivo com o operador de redirecionamento >>
  2. Anexar texto a um arquivo com o comando tee
Como anexar texto a um arquivo usando o Bash

Podemos anexar texto a um arquivo utilizando o operador Redirecionamento (>>), e o comando tee.

Devemos nos certificar de que temos permissões suficientes para adicionar texto ao arquivo. Se não tivermos permissões suficientes, podemos ter a permissão negada por erro.

Anexar texto a um arquivo com o operador de redirecionamento >>

O operador de redirecionamento >> vai buscar a saída dos comandos bash e anexa a saída a outro arquivo. Há muitas maneiras de imprimir o texto para a saída padrão, porém echo e printf são os comandos mais populares.

Para anexar o texto a um arquivo, escrevemos um comando para imprimir o texto utilizando qualquer um dos comandos de saída e então anexamos o operador >> ao comando seguido do nome do arquivo onde o texto precisa ser adicionado.

echo "Hello World" >> abc.txt

Isto adicionará o texto Hello World no final do arquivo abc.txt.

Se o arquivo não existir no diretório de trabalho atual, o comando criará um arquivo vazio e escreverá o texto Hello World no arquivo.

Para interpretar os caracteres da seqüência de escape como \n, utilizamos a opção -e com o comando echo.

echo -e "Hello World! \nThis is DelftStack" >> abc.txt

Isto irá anexar o texto

Hello World!
This is DelftStack

para o arquivo abc.txt.

Para verificar se o texto foi anexado ou não, podemos utilizar o comando cat para visualizar o conteúdo do arquivo.

cat abc.txt

Resultado:

Hello World! 
This is DelftStack

Se o texto tiver sido anexado, podemos ver o texto no final do arquivo.

Se quisermos mais texto formatado, podemos utilizar o comando printf para produzir mais saída formatada.

printf "The path of shell interpreter is %s\n" $SHELL >> abc.txt

Ele adiciona o texto The path of shell interpreter is /bin/bash ao arquivo abc.txt.

Anexar texto a um arquivo com o comando tee

O tee é um utilitário de linha de comando que tira a entrada da entrada padrão e a grava em um ou mais arquivos e saída padrão simultaneamente.

Por padrão, o comando tee sobrescreve o conteúdo dos arquivos. Para apenas anexar o texto no final do arquivo, utilizamos a opção -a ou --append com o comando.

echo "Hello World!" | tee -a abc.txt

Resultado:

Hello World!

Ele anexa Hello World! ao arquivo abc.txt e também escreve o texto na saída padrão no terminal.

Se nos for negada permissão de erro ao anexar texto a um arquivo, podemos adicionar a palavra-chave sudo antes do comando tee.

echo "Hello World!" | sudo tee -a abc.txt

Se não quisermos ver a saída padrão, podemos redirecionar a saída para /dev/null.

 echo "Hello World!"  | tee -a abc.txt >/dev/null

Uma vantagem de utilizar o comando tee é que podemos escrever o texto em vários arquivos simultaneamente utilizando o comando tee. Para escrever o texto em vários arquivos, podemos simplesmente listar todos os arquivos separados por um espaço.

echo "Hello World!" | sudo tee -a abc.txt backup.txt

Ele anexa o texto a ambos os arquivos abc.txt e backup.txt simultaneamente.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn