Hvordan skrive til en fil i Bash

How Write File Bash



En av de viktigste oppgavene vi gjør mens vi arbeider med bash scripting, er å lese og skrive filer. I denne veiledningen vil vi fokusere på hvordan du leser filer i bash og hvordan du redigerer dem.

Det er flere måter å lese og skrive en fil på bash. Den enkleste måten er å bruke operatorer> og >>.







  • > operatøren vil overskrive eksisterende data
  • >> operatøren vil legge til data

Det generelle formatet for bruk av omdirigeringsoperatorer er:



Data> Filnavn
Data >> Filnavn

La oss forstå skriving til en filprosedyre med et eksempel:



Hvordan skrive en fil ved hjelp av omdirigeringsoperatorer

Som omtalt ovenfor bruker den enkle og greie tilnærmingen til å skrive til en fil omdirigeringsoperatorer. For eksempel, hvis du vil endre teksten til en allerede eksisterende fil, må du først lage en tekstfil med navnet på testfile.txt og skriv noe i det:





Lagre tekstfilen.



Skriv inn kommandoen nedenfor i terminalen:

$ echo Overskrive den eksisterende teksten i filen> testfile.txt

Overvridning kan være risikabelt; Derfor er det god praksis å aktivere noclobber. Innstilling av noclobber vil blokkere enhver overskriving til en hvilken som helst spennende fil.

$ set –o noclobber
$ echo Overskrive den eksisterende teksten i filen> testfile.txt

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

$ echo Overskrive den eksisterende teksten i filen> | testfile.txt

Eller du kan ganske enkelt deaktivere noclobber:

$ set + eller noclobber

Men denne kommandoen vil fjerne beskyttelsen fra alle filene.

Utdataene ovenfor indikerer at den eksisterende teksten er overskrevet. La oss nå bruke >> operatør:

$ echo Legger til tekst i den eksisterende tekstfilen >> testfile.txt

kastet ut er ikke alltid ideell å bruke siden du ikke kan formatere tekst ved å bruke den, derfor bruk printf i stedet for ekko for å formatere teksten som vist i følgende kommando:

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

La oss forstå konseptet med et bash script -eksempel. Åpne Vim ved å skrive vim i terminalen. Hvis du ikke har Vim -editor på enheten, må du installere den ved hjelp av:

$ sudo apt install vim

Skriv inn skriptet:

#! /bin/bash
echo Skriv inn navnet ditt
lese navn
ekko $ name> data_dir.txt
echo Skriv inn alderen din
les alder
ekko $ age >> data_dir.txt
katt data_dir.txt

De katt kommandoen brukes til å lage og redigere filene. Lagre skriptet ovenfor i Vim ved å bytte modus etter å ha trykket på Esc tast og skriv deretter inn : i 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 flerbruks kodeblokk. Syntaksen til Heredoc er:

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

Avgrensning

Enhver streng kan brukes i stedet for Delimiter, og - kan også brukes til å fjerne eventuelle tabulatorrom i filen. La oss forstå det ved å bruke et enkelt eksempel:

#! /bin/bash

katt<< TEXTFILE
Dette er en tekstfil.
Denne filen er opprettet ved hjelp av heredoc.
TEKSTFIL

Ovennevnte script cat -kommando oppretter en tekstfil med navnet TEXTFILE, og skriver tekst inn i filen som nettopp er opprettet. Lagre filen med navnet på 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 Tee -kommandoen. Som navn indikerer denne kommandoen tar input og skriver til en fil og viser output samtidig. Som standard vil Tee -kommandoen overskrive eksisterende data.

$ echo Dette er litt tekst | tee tekstfil.txt

For å legge til bruk –a:

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

For å skrive flere linjer, bruk:

$ echo Legge til tekst i flere filer | tee tekstfil1.txt tekstfil2.txt tekstfil3.txt

Kommandoen ovenfor vil opprette tre filer hvis de ikke eksisterer og skrive 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 omdirigeringsoperatorer>, >>. For å skrive flere linjer, kan heredoc brukes, og hvis du vil skrive de samme dataene til flere linjer, er tee -kommandoen ganske praktisk.