Linux

Bash Write to File

Bash Write to File

Uma das tarefas mais comuns ao escrever scripts Bash ou trabalhar na linha de comando do Linux é ler e gravar arquivos.

Este artigo explica como escrever texto em um arquivo no Bash, usando os operadores de redirecionamento e tee comando.

Gravando em um arquivo usando operadores de redirecionamento #

No Bash, o redirecionamento da saída permite capturar a saída de um comando e gravá-la em um arquivo.

O formato geral para redirecionar e gravar a saída em um arquivo é o seguinte:

saída> saída do nome do arquivo >> nome do arquivo 

Você precisa ter permissões de gravação para o arquivo. Caso contrário, você receberá um erro de permissão negada.

Aqui está um exemplo simples que mostra como redirecionar a saída do eco comando para um arquivo:

echo "isto é uma linha"> arquivo.TXT

Para evitar a substituição de arquivos existentes, habilite a opção “noclobber” com o definir construídas em:

set -o noclobberecho "isto é uma linha"> arquivo.TXT
bash: arquivo.txt: não é possível sobrescrever o arquivo existente 

O > | operador permite que você substitua a opção “noclobber” do Bash:

set -o noclobberecho "esta é uma linha"> | Arquivo.TXT

O >> operador anexa a saída ao final do arquivo, em vez de sobrescrever o arquivo:

echo "esta é uma linha" >> arquivo.TXT

Use o printf comando para criar uma saída complexa:

printf "Olá, sou% s.\ n "$ USER> arquivo.TXT

Se você quiser gravar várias linhas em um arquivo, use o redirecionamento de documento Aqui (Heredoc).

Por exemplo, você pode passar o conteúdo para o gato comando e gravá-lo em um arquivo:

gato << EOF > Arquivo.txt O diretório de trabalho atual é: $ PWD Você está logado como $ (whoami) EOF 

Para acrescentar as linhas, mude > com >> antes do nome do arquivo:

gato << EOF >> arquivo.txt O diretório de trabalho atual é: $ PWD Você está logado como $ (whoami) EOF 

Você pode gravar a saída de qualquer comando em um arquivo:

data + "Ano:% Y, Mês:% m, Dia:% d"> arquivo.TXT

A saída do data o comando será escrito no arquivo.

Gravando em um arquivo usando o tee Comando #

O tee o comando lê a entrada padrão e grava na saída padrão e em um ou mais arquivos simultaneamente.

echo "esta é uma linha" | arquivo tee.TXT

O tee o comportamento padrão do comando é substituir o arquivo especificado, o mesmo que o > operador. Para anexar a saída ao arquivo, invoque o comando com o -uma (--acrescentar) opção:

echo "esta é uma linha" | tee -a arquivo.TXT

Se você não quer o tee para escrever na saída padrão, você pode redirecioná-lo para / dev / null:

echo "esta é uma linha" | arquivo tee.txt> / dev / null

Para escrever o texto em mais de um arquivo, especifique os arquivos como argumentos para o tee comando:

echo "esta é uma linha" | tee file_1.arquivo txt_2.txt file_3.TXT

Outra vantagem do tee comando é que você pode usá-lo em conjunto com sudo e escrever em arquivos pertencentes a outros usuários. Para anexar texto a um arquivo para o qual você não tem permissão de gravação, adicione sudo antes tee:

echo "esta é uma linha" | arquivo sudo tee.TXT

O eco a saída do comando é passada como entrada para o tee, que eleva as permissões sudo e grava o texto no arquivo.

Conclusão #

No Linux, para escrever texto em um arquivo, use o > e >> operadores de redirecionamento ou o tee comando.

Se você tiver alguma dúvida ou feedback, fique à vontade para deixar um comentário.

Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...