Obstaja več načinov branja in pisanja datoteke v bash. Najenostavnejši način je uporaba operatorjev “>” in “>>”.
- Operator “>” bo prepisal obstoječe podatke
- Operater “>>” bo dodal podatke
Splošna oblika uporabe operaterjev preusmeritve je:
Podatki> Ime datotekePodatki >> Ime datoteke
Razumejmo postopek zapisovanja v datoteko s primerom:
Kako napisati datoteko z uporabo preusmeritvenih operaterjev
Kot smo že omenili, preprost in enostaven pristop pisanja v datoteko uporablja operatorje preusmeritve. Če želite na primer spremeniti besedilo že obstoječe datoteke, najprej ustvarite besedilno datoteko z imenom »testna datoteka.txt"In vanj napišite kar koli:
Shranite besedilno datoteko.
V terminal vnesite spodnji ukaz:
$ echo “Prepis obstoječega besedila v datoteki”> testna datoteka.txt
Prekomerno ožemanje je lahko tvegano; zato je dobra praksa, da omogočimo "noclobber". Če nastavite »noclobber«, bi blokirali kakršno koli prepisovanje v katero koli izhodno datoteko.
$ set -o noclobber$ echo “Prepis obstoječega besedila v datoteki”> testna datoteka.txt
Če pa želite obiti "noclobber", uporabite "> |"Namesto">":
$ echo “Prepis obstoječega besedila v datoteki”> | testna datoteka.txtAli pa preprosto onemogočite “noclobber”:
$ set + o noclobber
Toda ta ukaz bo odvzel zaščito vsem datotekam.
Zgornji izhod kaže, da je bilo obstoječe besedilo prepisano. Zdaj pa uporabimo>>”Operater:
$ echo “Dodajanje besedila obstoječi besedilni datoteki” >> testna datoteka.txt
“odmev"Ni vedno idealen za uporabo, ker besedila z njim ne morete formatirati, zato uporabite" printf "namesto" echo "za oblikovanje besedila, kot je prikazano v naslednjem ukazu:
$ printf “Dobrodošli \ n To je nova besedilna datoteka.”> Newtestfile.txt
Razumimo koncept s primerom bash skripta. Odprite Vim, tako da v terminal vnesete »vim«. Če v napravi nimate urejevalnika Vim, ga namestite s pomočjo:
$ sudo apt namestite vimVnesite skript:
#! / bin / bashecho "Vpiši svoje ime"
preberite ime
echo $ name> data_dir.txt
echo "Vnesite svojo starost"
bralna starost
echo $ age >> data_dir.txt
mačka data_dir.txt
„mačka"Se uporablja za ustvarjanje in urejanje datotek. Zgornji skript shranite v Vim tako, da preklopite način po pritisku gumba »Esc"In nato vnesite": w skript.sh". Odprite terminal in zaženite kodo:
Kako napisati datoteko s programom Heredoc
Če želite napisati več vrstic, potem je najlažje uporabiti "Heredoc". Tu je dokument, znan tudi kot "Heredoc", večnamenski kodni blok. Sintaksa Heredoca je:
Ukaz <<[-] Delimiter.
besedilo / ukazi
.
Ločilo
Vsak niz je mogoče uporabiti namesto »Ločilnika«, »-« pa tudi za odstranjevanje vseh prostorov zavihkov v datoteki. Razumimo to na preprostem primeru:
#! / bin / bashmačka << TEXTFILE
To je besedilna datoteka.
Ta datoteka je ustvarjena s pomočjo heredoc.
TEKSTIL
Zgornji ukaz "mačka" skripta ustvari besedilno datoteko z imenom "TEXTFILE" in zapiše besedilo v pravkar ustvarjeno datoteko. Zdaj datoteko shranite z imenom »skript.sh". Zaženite terminal in zaženite skript.
Kako napisati datoteko z ukazom Tee
Druga metoda za zapis datoteke je uporaba ukaza “Tee”. Kot ime, ki označuje, ta ukaz hkrati vnese in zapiše v datoteko ter prikaže izhod. Privzeto bo ukaz »Tee« prepisal obstoječe podatke.
$ echo “To je nekaj besedila” | tekstovna datoteka tee.txt
Če želite dodati -a:
$ echo “To je drugo besedilo” | tee -besedilna datoteka.txt
Če želite napisati več vrstic, uporabite:
$ echo “Dodajanje besedila v več datotek” | tekstovna datoteka tee.besedilna datoteka txt2.besedilna datoteka txt3.txt
Zgornji ukaz bo ustvaril tri datoteke, če ne obstajajo, in v vsako napisal besedilo.
Zaključek
Ta priročnik se osredotoča na več pristopov za zapisovanje v datoteko v bash s primeri. Pri skriptiranju bash obstaja več načinov za pisanje datoteke, najpreprostejši pa je uporaba operaterjev preusmeritve ">", ">>". Za pisanje več vrstic lahko uporabimo »heredoc« in če želimo iste podatke zapisati v več vrstic, je ukaz »tee« zelo priročen.