Com escriure a un fitxer a Bash

How Write File Bash



Una de les tasques essencials que fem mentre treballem amb bash scripting és llegir i escriure fitxers. En aquesta guia, ens centrarem en com llegir fitxers en bash i com editar-los.

Hi ha diverses maneres de llegir i escriure un fitxer en bash. La forma més senzilla és utilitzar operadors> i >>.







  • > l'operador sobreescriurà les dades existents
  • >> L'operador afegirà dades

El format general d’utilitzar operadors de redirecció és:



Dades> Nom del fitxer
Dades >> Nom del fitxer

Entenem el procediment d’escriptura en un fitxer amb un exemple:



Com escriure un fitxer mitjançant operadors de redirecció

Com s’ha comentat anteriorment, l’enfocament senzill i directe d’escriure a un fitxer utilitza operadors de redirecció. Per exemple, si voleu canviar el text d'un fitxer ja existent, primer creeu un fitxer de text amb el nom de fitxer de prova.txt i escriviu-hi qualsevol cosa:





Deseu el fitxer de text.



Escriviu l'ordre esmentada a continuació al terminal:

$ echo Sobreescrivint el text existent al fitxer> testfile.txt

Un excés de torçar pot ser arriscat; per tant, és una bona pràctica habilitar nocobber. La configuració de noclobber bloquejaria qualsevol sobreescriptura a qualsevol fitxer que surti.

$ Setembre -o noclobber
$ echo Sobreescrivint el text existent al fitxer> testfile.txt

Però si voleu passar per alt el noclobber, feu servir el fitxer > | operador en lloc de > :

$ echo Sobreescrivint el text existent al fitxer> | fitxer de prova.txt

O simplement podeu desactivar noclobber:

$ Set + o noclobber

Però aquesta ordre eliminarà la protecció de tots els fitxers.

La sortida anterior indica que s’ha sobreescrit el text existent. Ara, fem servir el >> operador:

$ echo Afegir text al fitxer de text existent >> testfile.txt

trobo no sempre és ideal per utilitzar-lo, ja que no es pot formatar text amb ell, per tant, utilitzeu printf al lloc d'eco per formatar el text tal com es demostra a l'ordre següent:

$ printf Benvinguda n Es tracta d'un fitxer de text nou. > newtestfile.txt

Comprenguem el concepte amb un exemple de guió bash. Obriu Vim escrivint vim al terminal. Si no teniu editor Vim al dispositiu, instal·leu-lo mitjançant:

$ sudo apt install vim

Escriviu l'script:

#! / bin / bash
eco Introduïu el vostre nom
llegeix el nom
echo $ name> data_dir.txt
eco Introduïu la vostra edat
llegir edat
echo $ age >> data_dir.txt
cat data_dir.txt

El gat La comanda s'utilitza per crear i editar els fitxers. Deseu l'script anterior a Vim canviant de mode després de prémer el botó Esc tecla i, a continuació, escriviu : a myscript.sh . Obriu el terminal i executeu el codi:

Com escriure un fitxer mitjançant Heredoc

Si voleu escriure diverses línies, el mètode més senzill és utilitzar Heredoc. El document aquí, també conegut com Heredoc, és un bloc de codi polivalent. La sintaxi d'Heredoc és:

Comandament<<[-] Delimiter
.
text / ordres
.

Delimitador

Qualsevol cadena es pot utilitzar al lloc de Delimitador i - també es pot utilitzar per eliminar qualsevol espai de pestanya del fitxer. Entenem-ho mitjançant un exemple senzill:

#! / bin / bash

gat<< TEXTFILE
Es tracta d’un fitxer de text.
Aquest fitxer es crea amb heredoc.
FITXA DE TEXT

L'ordre script script anterior crea un fitxer de text amb el nom de TEXTFILE i escriu text al fitxer que acaba de crear. Ara deseu el fitxer amb el nom de myscript.sh . Inicieu el terminal i executeu l'script.

Com escriure un fitxer mitjançant l'ordre Tee

Un altre mètode per escriure un fitxer és utilitzar l’ordre Tee. Com a nom que indica aquesta ordre, pren entrada i escriu en un fitxer i mostra la sortida simultàniament. Per defecte, l'ordre Tee sobreescriurà les dades existents.

$ echo Aquest és un text | tee textfile.txt

Per afegir l'ús –a:

$ echo Aquest és un altre text | tee: un fitxer de text.txt

Per escriure diverses línies, utilitzeu:

$ echo Afegir text a diversos fitxers | te textfile1.txt textfile2.txt textfile3.txt

L'ordre anterior crearà tres fitxers si no existeixen i escriurà text a cadascun d'ells.

Conclusió

Aquesta guia se centra en múltiples enfocaments per escriure a un fitxer en bash amb exemples. A bash scripting, hi ha diverses maneres d’escriure un fitxer, però la més senzilla és utilitzar operadors de redirecció>, >>. Per escriure diverses línies, es pot utilitzar heredoc i, si voleu escriure les mateixes dades a diverses línies, l'ordre tee és força útil.