Det er flere måter å lese og skrive en fil i bash. Den enkleste måten er å bruke operatorene ">" og ">>".
- Operatøren “>” overskriver eksisterende data
- “>>” operatøren vil legge til data
Det generelle formatet for bruk av viderekoblingsoperatorer er:
Data> FilnavnData >> Filnavn
La oss forstå skrivingen til en filprosedyre med et eksempel:
Hvordan skrive en fil ved hjelp av viderekoblingsoperatorer
Som diskutert ovenfor bruker den enkle og greie tilnærmingen til å skrive til en fil viderekoblingsoperatorer. Hvis du for eksempel vil endre teksten til en allerede eksisterende fil, må du først opprette en tekstfil med navnet “testfil.tekst”Og skriv noe i det:
Lagre tekstfilen.
Skriv inn kommandoen nedenfor i terminalen:
$ echo “Overskriving av eksisterende tekst i filen”> testfil.tekst
Over vridning kan være risikabelt; derfor er det god praksis å aktivere “noclobber”. Innstilling av “noclobber” vil blokkere overskriving av alle eksisterende filer.
$ sett -o noclobber$ echo “Overskriving av eksisterende tekst i filen”> testfil.tekst
Men hvis du vil omgå “noclobber”, så bruk ”> |”Operatør i stedet for“>”:
$ echo “Overskriving av eksisterende tekst i filen”> | testfil.tekstEller du kan bare deaktivere “noclobber”:
$ sett + o noclobber
Men denne kommandoen vil fjerne beskyttelse fra alle filene.
Ovennevnte utgang indikerer at den eksisterende teksten er overskrevet. La oss nå bruke “>>”Operatør:
$ echo “Legge til tekst i eksisterende tekstfil” >> testfil.tekst
“ekko”Er ikke alltid ideelt å bruke siden du ikke kan formatere tekst ved hjelp av den, bruk derfor“ printf ”i stedet for“ ekko ”for å formatere teksten som vist i følgende kommando:
$ printf “Velkommen \ n Dette er en ny tekstfil.”> Nyeste testfil.tekst
La oss forstå konseptet med et bash-skripteksempel. Åpne Vim ved å skrive “vim” i terminalen. Hvis du ikke har Vim-editor på enheten din, installerer du den ved hjelp av:
$ sudo apt installere vimSkriv inn skriptet:
#! / bin / bashekko “Skriv inn navnet ditt”
lese navnet
ekko $ navn> data_dir.tekst
ekko “Skriv inn din alder”
lese alder
ekko $ alder >> data_dir.tekst
kattedata_dir.tekst
“katt”-Kommandoen brukes til å opprette og redigere filene. Lagre ovenstående skript i Vim ved å bytte modus etter å ha trykket på “Esc”-Tasten og skriv deretter inn“: w myscript.sh”. Åpne terminalen og kjør koden:
Hvordan skrive en fil ved hjelp av Heredoc
Hvis du vil skrive flere linjer, er den enkleste metoden å bruke "Heredoc". Her er dokumentet, også kjent som "Heredoc", en flerfunksjons kodeblokk. Syntaksen til Heredoc er:
Kommando <<[-] Delimiter.
tekst / kommandoer
.
Avgrenser
Enhver streng kan brukes i stedet for "Avgrenser", og "-" kan også brukes til å fjerne eventuelle fanerom i filen. La oss forstå det ved hjelp av et enkelt eksempel:
#! / bin / bashkatt << TEXTFILE
Dette er en tekstfil.
Denne filen er opprettet ved hjelp av heredoc.
TEKSTFIL
Ovenstående skript "cat" -kommando oppretter en tekstfil med navnet "TEXTFILE", og skriver tekst inn i filen som nettopp ble opprettet. Lagre nå filen med navnet “myscript.sh”. Start terminalen og kjør skriptet.
Hvordan skrive en fil ved hjelp av Tee-kommandoen
En annen metode for å skrive en fil er å bruke kommandoen “Tee”. Som navnet indikerer denne kommandoen input og skriver til en fil og viser output samtidig. Som standard overskriver "Tee" -kommandoen eksisterende data.
$ echo “Dette er litt tekst” | tee-tekstfil.tekst
For å legge til bruk -a:
$ echo “Dette er en annen tekst” | tee -a tekstfil.tekst
For å skrive flere linjer, bruk:
$ echo “Legge til tekst i flere filer” | tee-tekstfil 1.txt tekstfil2.txt tekstfil3.tekst
Ovennevnte kommando oppretter tre filer hvis de ikke eksisterer og skriver tekst til hver av dem.
Konklusjon
Denne guiden fokuserer på flere tilnærminger for å skrive til en fil i bash med eksempler. I bash-skripting er det flere måter å skrive en fil på, men den enkleste er å bruke viderekoblingsoperatorer ">", ">>". For å skrive flere linjer kan “heredoc” brukes, og hvis du vil skrive de samme dataene til flere linjer, er kommandoen “tee” ganske praktisk.