Postoji više načina za čitanje i pisanje datoteke na bashu. Najjednostavniji način je upotreba operatora ">" i ">>".
- Operator ">" prebrisat će postojeće podatke
- Operator „>>“ dodati će podatke
Opći format korištenja operatora preusmjeravanja je:
Podaci> Naziv datotekePodaci >> Naziv datoteke
Razumijemo postupak upisivanja u datoteku na primjeru:
Kako napisati datoteku pomoću operatora preusmjeravanja
Kao što je gore spomenuto, jednostavan i neposredan pristup zapisivanju u datoteku koristi se operaterima preusmjeravanja. Na primjer, ako želite promijeniti tekst već postojeće datoteke, prvo stvorite tekstualnu datoteku imenom "ispitna datoteka.txt"I u njega napišite bilo što:
Spremite tekstualnu datoteku.
Utipkajte dolje navedenu naredbu u terminal:
$ echo “Prepisivanje postojećeg teksta u datoteci”> testfile.txt
Preklijetanje može biti rizično; stoga je dobra praksa omogućiti "noclobber". Postavljanje "noclobber" blokiraće bilo koji prepisivanje u bilo koju izlaznu datoteku.
$ set -o noclobber$ echo “Prepisivanje postojećeg teksta u datoteci”> testfile.txt
Ali ako želite zaobići "noclobber", upotrijebite "> |”Operator umjesto“>”:
$ echo “Prepisivanje postojećeg teksta u datoteci”> | ispitna datoteka.txtIli jednostavno možete onemogućiti "noclobber":
$ set + o noclobber
Ali ova će naredba oduzeti zaštitu svim datotekama.
Gornji izlaz pokazuje da je postojeći tekst prepisan. A sada, upotrijebimo ">>”Operator:
$ echo “Dodavanje teksta postojećoj tekstualnoj datoteci” >> testna datoteka.txt
“jeka"Nije uvijek idealno za upotrebu jer ne možete formatirati tekst pomoću njega, zato upotrijebite" printf "umjesto" echo "za oblikovanje teksta kao što je pokazano u sljedećoj naredbi:
$ printf “Dobrodošli \ n Ovo je nova tekstualna datoteka.”> Newtestfile.txt
Razumijemo koncept na primjeru bash skripte. Otvorite Vim upisivanjem "vim" u terminal. Ako na uređaju nemate Vim editor, instalirajte ga pomoću:
$ sudo apt instalirati vimUpišite skriptu:
#! / bin / bashodjek "Unesite svoje ime"
pročitajte ime
echo $ name> data_dir.txt
odjek "Unesite svoje godine"
čitati dob
odjek $ age >> data_dir.txt
mačka data_dir.txt
"mačkaNaredba ”koristi se za stvaranje i uređivanje datoteka. Spremite gornju skriptu u Vim tako što ćete prebaciti način rada nakon pritiska tipkeEscTipku, a zatim upišite ": w skripta.sh". Otvorite terminal i pokrenite kôd:
Kako napisati datoteku pomoću Heredoca
Ako želite napisati više redaka, tada je najjednostavnija metoda koristiti "Heredoc". Ovdje je dokument, poznat i kao "Heredoc", višenamjenski blok koda. Sintaksa Heredoca je:
Naredba <<[-] Delimiter.
tekst / naredbe
.
Razdjelnik
Bilo koji niz može se upotrijebiti umjesto "Razdjelnika", a "-" također se može koristiti za uklanjanje bilo kojeg prostora tabulatora u datoteci. Shvatimo to na jednostavnom primjeru:
#! / bin / bashmačka << TEXTFILE
Ovo je tekstualna datoteka.
Ova datoteka kreirana je pomoću heredoc.
TEKSTIL
Gornja naredba "mačka" skripte stvara tekstualnu datoteku pod nazivom "TEXTFILE" i upisuje tekst u upravo stvorenu datoteku. Sada spremite datoteku pod imenom “tajna.sh". Pokrenite terminal i pokrenite skriptu.
Kako napisati datoteku pomoću naredbe Tee
Druga metoda za pisanje datoteke je upotreba naredbe "Tee". Kao naziv koji označava ovu naredbu uzima ulaz i piše u datoteku te istovremeno prikazuje izlaz. Prema zadanim postavkama naredba "Tee" prebrisat će postojeće podatke.
$ echo "Ovo je neki tekst" | tee tekstualna datoteka.txt
Da biste dodali upotrebu -a:
$ echo "Ovo je drugi tekst" | tee -datoteka s tekstom.txt
Da biste napisali više redaka, upotrijebite:
$ echo "Dodavanje teksta u više datoteka" | tee tekstualna datoteka1.txt tekstualna datoteka2.txt tekstualna datoteka3.txt
Gornja naredba će stvoriti tri datoteke ako ne postoje i napisati tekst u svaku od njih.
Zaključak
Ovaj se vodič usredotočuje na više pristupa pisanju u datoteku u bash s primjerima. U bash skripti postoji više načina za pisanje datoteke, ali najjednostavniji je upotreba operatora preusmjeravanja ">", ">>". Za pisanje više redaka može se koristiti "heredoc", a ako želite zapisati iste podatke u više redaka, tada je naredba "tee" vrlo zgodna.