Der er flere måder at læse og skrive en fil i bash. Den enkleste måde er at bruge operatorerne ">" og ">>".
- ">" -Operatøren overskriver de eksisterende data
- “>>” operatøren tilføjer data
Det generelle format for brug af omdirigeringsoperatorer er:
Data> FilnavnData >> 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 “testfil.txt”Og skriv noget i det:
Gem tekstfilen.
Skriv nedenstående kommando i terminalen:
$ echo "Overskrivning af den eksisterende tekst i filen"> testfil.txt
Over vridning kan være risikabelt; derfor er det god praksis at aktivere “noclobber”. Indstilling af "noclobber" vil blokere enhver overskrivning til enhver spændende fil.
$ sæt -o noclobber$ echo "Overskrivning af den eksisterende tekst i filen"> testfil.txt
Men hvis du vil omgå “noclobber”, skal du bruge ”> |”Operatør i stedet for“>”:
$ echo "Overskrivning af den eksisterende tekst i filen"> | testfil.txtEller du kan bare deaktivere “noclobber”:
$ sæt + o noclobber
Men denne kommando fjerner beskyttelsen fra alle filer.
Ovenstående output angiver, at den eksisterende tekst er blevet overskrevet. Lad os nu bruge “>>”Operatør:
$ echo "Tilføjelse af tekst til den eksisterende tekstfil" >> testfil.txt
“ekko”Er ikke altid ideel at bruge, da du ikke kan formatere tekst ved hjælp af den, brug derfor“ printf ”i stedet for“ echo ”til at formatere teksten som vist i følgende kommando:
$ printf “Velkommen \ n Dette er en ny tekstfil.”> Nyeste testfil.txt
Lad os forstå konceptet med et bash-scripteksempel. Å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 install vimSkriv scriptet:
#! / bin / bashekko "Indtast dit navn"
læse navn
ekko $ navn> data_dir.txt
ekko "Indtast din alder"
læse alder
ekko $ alder >> 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”-Tasten og skriv derefter“: w myscript.sh”. Åbn terminalen og kør koden:
Sådan skriver du en fil ved hjælp af Heredoc
Hvis du vil skrive flere linjer, er den nemmeste metode at bruge "Heredoc". Her er dokumentet, også kendt som "Heredoc", en multifunktionel kodeblok. Syntaksen for Heredoc er:
Kommando <<[-] Delimiter.
tekst / kommandoer
.
Afgrænser
Enhver streng kan bruges i stedet for "Afgrænser", og "-" kan også bruges til at fjerne eventuelle fanerum i filen. Lad os forstå det ved hjælp af et simpelt eksempel:
#! / bin / bashkat << 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 lige oprettede fil. Gem nu filen med navnet “myscript.sh”. Start terminalen og kør scriptet.
Sådan skriver du en fil ved hjælp af kommandoen Tee
En anden metode til at skrive en fil bruger kommandoen “Tee”. Som navn, der angiver, tager denne kommando input og skriver til en fil og viser output samtidigt. Som standard overskriver kommandoen "Tee" 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 guide 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 bruger omdirigeringsoperatorer ">", ">>". For at skrive flere linjer kan "heredoc" bruges, og hvis du vil skrive de samme data til flere linjer, er kommandoen "tee" ganske praktisk.