Kako pisati u datoteku u Bashu

How Write File Bash

Jedan od bitnih zadataka koje radimo dok radimo s bash skriptama je čitanje i pisanje datoteka. U ovom vodiču ćemo se usredotočiti na to kako čitati datoteke u bashu i kako ih urediti.

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.txt

Ili 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 vim

Upišite skriptu:

#! /bin/bash
echo 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/bash

mač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.