Como escrever em um arquivo no Bash

How Write File Bash



Uma das tarefas essenciais que realizamos ao trabalhar com script bash é ler e gravar arquivos. Neste guia, vamos nos concentrar em como ler arquivos no bash e como editá-los.

Existem várias maneiras de ler e gravar um arquivo no bash. A maneira mais simples é usar operadores> e >>.







  • > operador irá sobrescrever os dados existentes
  • >> operador irá anexar dados

O formato geral de uso de operadores de redirecionamento é:



Dados> Nome do arquivo
Dados >> Nome do arquivo

Vamos entender o procedimento de gravação de um arquivo com um exemplo:



Como escrever um arquivo usando operadores de redirecionamento

Conforme discutido acima, a abordagem simples e direta de gravar em um arquivo é usar operadores de redirecionamento. Por exemplo, se você deseja alterar o texto de um arquivo já existente, primeiro crie um arquivo de texto com o nome de testfile.txt e escreva qualquer coisa nele:





Salve o arquivo de texto.



Digite o comando mencionado abaixo no terminal:

$ echo Sobrescrevendo o texto existente no arquivo> testfile.txt

Espremer demais pode ser arriscado; portanto, é uma boa prática habilitar o noclobber. Definir noclobber bloquearia qualquer substituição em qualquer arquivo existente.

$ set –o noclobber
$ echo Sobrescrevendo o texto existente no arquivo> testfile.txt

Mas se você quiser ignorar o noclobber, use o > | operador em vez de > :

$ echo Sobrescrevendo o texto existente no arquivo> | testfile.txt

Ou você pode simplesmente desativar o noclobber:

$ set + ou noclobber

Mas este comando tirará a proteção de todos os arquivos.

A saída acima indica que o texto existente foi sobrescrito. Agora, vamos usar o >> operador:

$ echo Anexando texto ao arquivo de texto existente >> testfile.txt

jogou fora nem sempre é ideal para usar, pois você não pode formatar texto usando-o, portanto, use printf no lugar de echo para formatar o texto conforme demonstrado no seguinte comando:

$ printf Bem-vindo n Este é um novo arquivo de texto. > newtestfile.txt

Vamos entender o conceito com um exemplo de script bash. Abra o Vim digitando vim no terminal. Se você não tiver o editor Vim em seu dispositivo, instale-o usando:

$ sudo apt install vim

Digite o script:

#! / bin / bash
echo Digite seu nome
ler o nome
echo $ name> data_dir.txt
echo Informe sua idade
idade de leitura
echo $ age >> data_dir.txt
cat data_dir.txt

o gato comando é usado para criar e editar os arquivos. Salve o script acima no Vim alternando o modo após pressionar o Esc chave e depois digite : em myscript.sh . Abra o terminal e execute o código:

Como escrever um arquivo usando Heredoc

Se você quiser escrever várias linhas, o método mais fácil é usar o Heredoc. Aqui, o documento, também conhecido como Heredoc, é um bloco de código multiuso. A sintaxe do Heredoc é:

Comando<<[-] Delimiter
.
texto / comandos
.

Delimitador

Qualquer string pode ser usada no lugar do Delimitador e - também pode ser usada para remover quaisquer espaços de tabulação no arquivo. Vamos entender usando um exemplo simples:

#! / bin / bash

gato<< TEXTFILE
Este é um arquivo de texto.
Este arquivo é criado usando o heredoc.
ARQUIVO DE TEXTO

O comando script cat acima cria um arquivo de texto com o nome de TEXTFILE e grava o texto no arquivo recém-criado. Agora salve o arquivo com o nome de myscript.sh . Inicie o terminal e execute o script.

Como escrever um arquivo usando o comando Tee

Outro método para escrever um arquivo é usar o comando Tee. Como nome que indica este comando pega a entrada e grava em um arquivo e mostra a saída simultaneamente. Por padrão, o comando Tee substituirá os dados existentes.

$ echo Este é algum texto | tee textfile.txt

Para anexar use –a:

$ echo Este é outro texto | tee –a textfile.txt

Para escrever várias linhas, use:

$ echo Adicionando texto a vários arquivos | tee textfile1.txt textfile2.txt textfile3.txt

O comando acima criará três arquivos se eles não existirem e gravará um texto em cada um deles.

Conclusão

Este guia está se concentrando em várias abordagens para gravar em um arquivo em bash com exemplos. No script bash, existem várias maneiras de escrever um arquivo, mas a mais simples é usar operadores de redirecionamento>, >>. Para escrever várias linhas, o heredoc pode ser usado, e se você quiser escrever os mesmos dados em várias linhas, o comando tee é bastante útil.