Sådan skriver du til en fil i Bash

How Write File Bash



En af de væsentlige opgaver, vi udfører, mens vi arbejder med bash scripting, er at læse og skrive filer. I denne vejledning vil vi fokusere på, hvordan man læser filer i bash, og hvordan man redigerer dem.

Der er flere måder at læse og skrive en fil på bash. Den enkleste måde er at bruge operatorer> og >>.







  • > operatøren overskriver de eksisterende data
  • >> operatøren tilføjer data

Det generelle format for brug af omdirigeringsoperatorer er:



Data> Filnavn
Data >> Filnavn

Lad os forstå skrivningen til en filprocedure med et eksempel:



Sådan skriver du en fil ved hjælp af omdirigeringsoperatorer

Som diskuteret ovenfor bruger den enkle og ligetil tilgang til at skrive til en fil omdirigeringsoperatorer. For eksempel, hvis du vil ændre teksten i en allerede eksisterende fil, skal du først oprette en tekstfil med navnet på testfil.txt og skriv noget i det:





Gem tekstfilen.



Indtast nedenstående kommando i terminalen:

$ echo Overskrivning af den eksisterende tekst i filen> testfile.txt

Overvridning kan være risikabelt; derfor er det god praksis at aktivere noclobber. Indstilling af noclobber ville blokere enhver overskrivning til enhver afslutte fil.

$ set –o noclobber
$ echo Overskrivning af den eksisterende tekst i filen> testfile.txt

Men hvis du vil omgå noclobber, skal du bruge > | operatør i stedet for > :

$ echo Overskrivning af den eksisterende tekst i filen> | testfil.txt

Eller du kan simpelthen deaktivere noclobber:

$ set + eller noclobber

Men denne kommando fjerner beskyttelsen fra alle filerne.

Ovenstående output angiver, at den eksisterende tekst er blevet overskrevet. Lad os nu bruge >> operatør:

$ echo Tilføj tekst til den eksisterende tekstfil >> testfile.txt

smed ud er ikke altid ideel at bruge, da du ikke kan formatere tekst ved hjælp af den, brug derfor printf i stedet for ekko til at formatere teksten som vist i følgende kommando:

$ printf Velkommen n Dette er en ny tekstfil. > newtestfile.txt

Lad os forstå konceptet med et bash script -eksempel. Åbn Vim ved at skrive vim i terminalen. Hvis du ikke har Vim -editor på din enhed, skal du installere den ved hjælp af:

$ sudo apt installere vim

Skriv scriptet:

#! /bin/bash
ekko Indtast dit navn
læse navn
ekko $ name> data_dir.txt
ekko Indtast din alder
læs alder
ekko $ age >> data_dir.txt
kat data_dir.txt

Det kat kommando bruges til at oprette og redigere filerne. Gem ovenstående script i Vim ved at skifte tilstand efter at have trykket på Esc tast og indtast derefter : i myscript.sh . Åbn terminalen og kør koden:

Hvordan man skriver en fil ved hjælp af Heredoc

Hvis du vil skrive flere linjer, er den nemmeste metode at bruge Heredoc. Her dokument, også kendt som Heredoc, er en multi-purpose kode blok. Syntaksen for Heredoc er:

Kommando<<[-] Delimiter
.
tekst/kommandoer
.

Afgrænser

Enhver streng kan bruges i stedet for Delimiter, og - kan også bruges til at fjerne eventuelle faneblade i filen. Lad os forstå det ved hjælp af et enkelt eksempel:

#! /bin/bash

kat<< TEXTFILE
Dette er en tekstfil.
Denne fil oprettes ved hjælp af heredoc.
TEKSTFIL

Ovenstående script cat -kommando opretter en tekstfil med navnet TEXTFILE og skriver tekst i den netop oprettede fil. Gem nu filen med navnet på myscript.sh . Start terminal og kør scriptet.

Sådan skriver du en fil ved hjælp af Tee -kommandoen

En anden metode til at skrive en fil er at bruge kommandoen Tee. Som navnet angiver, tager denne kommando input og skriver til en fil og viser output samtidigt. Som standard overskriver Tee -kommandoen de eksisterende data.

$ echo Dette er noget tekst | tee tekstfil.txt

For at tilføje brug –a:

$ echo Dette er en anden tekst | tee –en tekstfil.txt

For at skrive flere linjer skal du bruge:

$ echo Tilføjelse af tekst til flere filer | tee tekstfil1.txt tekstfil2.txt tekstfil3.txt

Ovenstående kommando opretter tre filer, hvis de ikke findes, og skriver tekst til hver af dem.

Konklusion

Denne vejledning fokuserer på flere tilgange til at skrive til en fil i bash med eksempler. I bash -scripting er der flere måder at skrive en fil på, men den enkleste er at bruge omdirigeringsoperatorer>, >>. For at skrive flere linjer kan heredoc bruges, og hvis du vil skrive de samme data til flere linjer, er tee -kommandoen ganske praktisk.