Postoji više načina čitanja i pisanja datoteke u bashu. Najjednostavniji način je korištenje operatora> i >>.
- > operator će prebrisati postojeće podatke
- >> operator će dodati podatke
Opći format korištenja operatora preusmjeravanja je:
Podaci> Naziv datoteke
Podaci >> Naziv datoteke
Shvatimo postupak pisanja u datoteku s primjerom:
Kako napisati datoteku pomoću operatora preusmjeravanja
Kao što je gore rečeno, jednostavan i jasan pristup pisanju u datoteku koristi operatore preusmjeravanja. Na primjer, ako želite promijeniti tekst već postojeće datoteke, prvo stvorite tekstualnu datoteku po imenu testfile.txt i upišite bilo što u njega:
Spremite tekstualnu datoteku.
Upišite dolje spomenutu naredbu u terminal:
$ echo Prepisivanje postojećeg teksta u datoteci> testfile.txt
Pretiskivanje može biti rizično; stoga je dobra praksa omogućiti noclobber. Postavljanje noclobber blokiralo bi svako prepisivanje bilo koje izlazne datoteke.
$ set –o noclobber$ echo Prepisivanje postojećeg teksta u datoteci> testfile.txt
Ali ako želite zaobići noclobber, upotrijebite > | operater umjesto > :
$ echo Prepisivanje postojećeg teksta u datoteci> | testfile.txtIli jednostavno možete onemogućiti noclobber:
$ set + ili noclobber
Ali ova naredba će oduzeti zaštitu svim datotekama.
Gornji izlaz ukazuje na to da je postojeći tekst prepisan. Sada, upotrijebimo >> operater:
$ echo Dodavanje teksta u postojeću tekstualnu datoteku >> testfile.txt
izbaciti nije uvijek idealan za upotrebu jer pomoću njega ne možete formatirati tekst, stoga upotrijebite printf umjesto odjeka za oblikovanje teksta kako je prikazano u sljedećoj naredbi:
$ printf Dobrodošli n Ovo je nova tekstualna datoteka. > newtestfile.txt
Shvatimo koncept s primjerom bash skripte. Otvorite Vim upisivanjem vim u terminal. Ako nemate Vim editor na svom uređaju, instalirajte ga pomoću:
$ sudo apt install vimUpišite skriptu:
#! /bin/bashecho Unesite svoje ime
pročitano ime
echo $ name> data_dir.txt
echo Unesite svoje godine
čitati dob
echo $ age >> data_dir.txt
mačka data_dir.txt
The mačka naredba se koristi za stvaranje i uređivanje datoteka. Spremite gornju skriptu u Vim prebacivanjem načina rada nakon pritiska na Esc ključ, a zatim upišite : u myscript.sh . Otvorite terminal i pokrenite kôd:
Kako napisati datoteku pomoću Heredoca
Ako želite napisati više redaka, najjednostavniji način je korištenje Heredoca. Ovdje je dokument, također poznat kao Heredoc, višenamjenski kodni blok. Sintaksa Heredoca je:
Naredba<<[-] Delimiter.
tekst/naredbe
.
Razdjelnik
Bilo koji niz može se koristiti umjesto razdjelnika, a - također se može koristiti za uklanjanje svih razmaka u datoteci. Shvatimo to na jednostavnom primjeru:
#! /bin/bashmačka<< TEXTFILE
Ovo je tekstualna datoteka.
Ova datoteka je stvorena pomoću heredoc -a.
TEKSTIL
Gornja naredba cat skripte stvara tekstualnu datoteku pod imenom TEXTFILE i upisuje tekst u datoteku koja je upravo stvorena. Sada spremite datoteku pod imenom myscript.sh . Pokrenite terminal i pokrenite skriptu.
Kako napisati datoteku pomoću naredbe Tee
Drugi način pisanja datoteke je korištenje naredbe Tee. Kao ime koje označava ova naredba uzima ulaz i zapisuje u datoteku te istovremeno prikazuje izlaz. Prema zadanim postavkama, naredba Tee će prebrisati postojeće podatke.
$ echo Ovo je neki tekst | tee textfile.txt
Za dodavanje upotrebe –a:
$ echo Ovo je drugi tekst | tee - tekstualna datoteka.txt
Za pisanje više redaka upotrijebite:
$ echo Dodavanje teksta u više datoteka | tee textfile1.txt textfile2.txt textfile3.txt
Gornja naredba će stvoriti tri datoteke ako ne postoje i napisati tekst u svaku od njih.
Zaključak
Ovaj vodič fokusira se na više pristupa pisanju u datoteku u bash -u s primjerima. U bash skriptiranju postoji više načina za pisanje datoteke, ali najjednostavniji je korištenje operatora preusmjeravanja>, >>. Za pisanje više redaka može se koristiti heredoc, a ako želite ispisati iste podatke u više redaka, naredba tee je vrlo zgodna.