Como anexar texto a um arquivo usando o Bash
-
Anexar texto a um arquivo com o operador de redirecionamento
>>
-
Anexar texto a um arquivo com o comando
tee
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 is a backend software engineer at Matrice.ai.
LinkedIn