Jedan od najčešćih zadataka prilikom pisanja Bash skripti ili rada na Linux naredbenom retku je čitanje i pisanje datoteka.
Ovaj članak objašnjava kako napisati tekst u datoteku u Bashu pomoću operatora preusmjeravanja i tee
naredba.
Zapisivanje u datoteku pomoću operatora preusmjeravanja #
U Bashu, preusmjeravanje rezultata omogućuje vam hvatanje rezultata iz naredbe i zapisivanje u datoteku.
Općeniti format za preusmjeravanje i upisivanje rezultata u datoteku je sljedeći:
izlaz> ime datoteke izlaz >> ime datoteke
- The
>
operater preusmjeravanja zapisuje izlaz u zadanu datoteku. Ako datoteka postoji, skraćuje se na nultu duljinu. Inače se datoteka kreira. Budite posebno oprezni pri korištenju ovog operatora jer možete prepisati važnu datoteku. - The
>>
operater preusmjeravanja dodaje izlaz datoj datoteci. Datoteka se kreira ako ne postoji.
Morate imati dozvolu za pisanje u datoteku. U suprotnom, dobit ćete pogrešku odbijenu dozvolu.
Evo jednostavnog primjera koji pokazuje kako se preusmjerava izlaz iz jeka
naredba u datoteku:
echo "ovo je linija"> datoteka.txt
Da biste spriječili prepisivanje postojećih datoteka, omogućite opciju "noclobber" pomoću postavljen
ugrađeno:
set -o noclobber
echo "ovo je linija"> datoteka.txt
bash: datoteka.txt: ne može prebrisati postojeću datoteku
The > |
Operator vam omogućuje da poništite opciju Bash "noclobber":
set -o noclobber
echo "ovo je linija"> | datoteka.txt
The >>
operator dodaje izlaz na kraj datoteke, umjesto da prepiše datoteku:
echo "ovo je linija" >> datoteka.txt
Koristiti printf
naredba za stvaranje složenog izlaza:
printf "Zdravo, ja sam% s.\ n "$ USER> datoteka.txt
Ako želite zapisati više redaka u datoteku, upotrijebite preusmjeravanje Here document (Heredoc).
Na primjer, možete proslijediti sadržaj na mačka
naredbu i zapišite je u datoteku:
mačka << EOF > datoteka.txt Trenutni radni direktorij je: $ PWD Prijavljeni ste kao $ (whoami) EOF
Da biste dodali retke, promijenite >
s >>
prije naziva datoteke:
mačka << EOF >> datoteka.txt Trenutni radni direktorij je: $ PWD Prijavljeni ste kao $ (whoami) EOF
Izlaz bilo koje naredbe možete napisati u datoteku:
datum + "Godina:% Y, Mjesec:% m, Dan:% d"> datoteka.txt
Rezultat datum
naredba će biti zapisana u datoteku.
Zapisivanje u datoteku pomoću tee
Naredba #
The tee
naredba čita sa standardnog ulaza i istovremeno piše na standardni izlaz i u jednu ili više datoteka.
echo "ovo je crta" | čajna datoteka.txt
The tee
Zadano ponašanje naredbe je prebrisati navedenu datoteku, isto kao i >
operater. Da biste dodali izlaz datoteci, pozovite naredbu s -a
(--dodati
) opcija:
echo "ovo je crta" | tee-spis.txt
Ako ne želite tee
da biste pisali na standardni izlaz, možete ga preusmjeriti na / dev / null
:
echo "ovo je crta" | čajna datoteka.txt> / dev / null
Da biste tekst napisali u više datoteka, navedite datoteke kao argumente za tee
naredba:
echo "ovo je crta" | tee datoteka_1.txt datoteka_2.txt datoteka_3.txt
Još jedna prednost tee
naredba je da ga možete koristiti zajedno s sudo
i pisati u datoteke u vlasništvu drugih korisnika. Da biste dodali tekst datoteci u koju nemate dozvolu za pisanje, dodajte sudo
prije tee
:
echo "ovo je crta" | datoteka sudo tee.txt
The jeka
Izlaz naredbe se predaje kao ulaz u tee
, što povisuje dozvole za sudo i zapisuje tekst u datoteku.
Zaključak #
U Linuxu za pisanje teksta u datoteku koristite >
i >>
operateri preusmjeravanja ili tee
naredba.
Ako imate pitanja ili povratne informacije, slobodno ostavite komentar.