Există mai multe moduri de a citi și scrie un fișier în bash. Cea mai simplă modalitate este folosirea operatorilor> și >>.
- > operatorul va suprascrie datele existente
- >> operatorul va adăuga date
Formatul general al utilizării operatorilor de redirecționare este:
Date> Nume fișier
Date >> Nume fișier
Să înțelegem procedura de scriere într-un fișier cu un exemplu:
Cum se scrie un fișier folosind operatori de redirecționare
După cum sa discutat mai sus, abordarea simplă și directă a scrierii într-un fișier utilizează operatori de redirecționare. De exemplu, dacă doriți să modificați textul unui fișier deja existent, atunci creați mai întâi un fișier text cu numele de testfile.txt și scrieți orice în ea:
Salvați fișierul text.
Tastați comanda menționată mai jos în terminal:
$ echo Suprascrierea textului existent în fișierul> testfile.txt
Suprapunerea poate fi riscantă; prin urmare, este o bună practică să activați nocobber. Setarea noclobber ar bloca orice suprascriere la orice fișier care iese.
$ set –o noclobber$ echo Suprascrierea textului existent în fișierul> testfile.txt
Dar dacă doriți să ocoliți noclobber, utilizați > | operator în loc de > :
$ echo Suprascrierea textului existent în fișier> | testfile.txtSau puteți dezactiva pur și simplu noclobber:
$ set + sau noclobber
Dar această comandă va elimina protecția de la toate fișierele.
Ieșirea de mai sus indică faptul că textul existent a fost suprascris. Acum, să folosim >> operator:
$ echo Adăugarea textului la fișierul text existent >> testfile.txt
aruncat nu este întotdeauna ideal de utilizat, deoarece nu puteți formata text folosindu-l, prin urmare utilizați printf în locul ecoului pentru a formata textul, după cum se arată în următoarea comandă:
$ printf Bun venit n Acesta este un fișier text nou. > newtestfile.txt
Să înțelegem conceptul cu un exemplu de script bash. Deschideți Vim tastând vim în terminal. Dacă nu aveți editor Vim pe dispozitiv, instalați-l folosind:
$ sudo apt instalează vimTastați scriptul:
#! / bin / bashecou Introduceți numele dvs.
citeste numele
echo $ nume> data_dir.txt
ecou Introduceți vârsta dvs.
citeste varsta
echo $ age >> data_dir.txt
cat data_dir.txt
The pisică comanda este utilizată pentru a crea și edita fișierele. Salvați scriptul de mai sus în Vim comutând modul după apăsarea butonului Esc tasta și apoi tastați : în myscript.sh . Deschideți terminalul și rulați codul:
Cum se scrie un fișier folosind Heredoc
Dacă doriți să scrieți mai multe linii, atunci cea mai ușoară metodă este utilizarea Heredoc. Aici documentul, cunoscut și sub numele de Heredoc, este un bloc de coduri multifuncțional. Sintaxa lui Heredoc este:
Comanda<<[-] Delimiter.
text / comenzi
.
Delimitator
Orice șir poate fi utilizat în locul Delimitatorului și - poate fi folosit și pentru a elimina orice spațiu al filei din fișier. Să o înțelegem folosind un exemplu simplu:
#! / bin / bashpisică<< TEXTFILE
Acesta este un fișier text.
Acest fișier este creat folosind heredoc.
FISIER TEXT
Comanda de mai sus a scriptului creează un fișier text cu numele TEXTFILE și scrie text în fișierul tocmai creat. Acum salvați fișierul cu numele myscript.sh . Lansați terminalul și rulați scriptul.
Cum se scrie un fișier folosind comanda Tee
O altă metodă pentru a scrie un fișier este utilizarea comenzii Tee. Pe măsură ce numele indică această comandă, intră și scrie într-un fișier și arată ieșirea simultan. În mod implicit, comanda Tee va suprascrie datele existente.
$ echo Acesta este un text | tee textfile.txt
Pentru a adăuga utilizați –a:
$ echo Acesta este un alt text | tee –un textfile.txt
Pentru a scrie mai multe linii, utilizați:
$ echo Adăugarea de text la mai multe fișiere | tee textfile1.txt textfile2.txt textfile3.txt
Comanda de mai sus va crea trei fișiere dacă nu există și va scrie text pentru fiecare dintre ele.
Concluzie
Acest ghid se concentrează pe mai multe abordări pentru a scrie într-un fișier în bash cu exemple. În scriptarea bash, există mai multe moduri de a scrie un fișier, dar cea mai simplă este folosirea operatorilor de redirecționare>, >>. Pentru a scrie mai multe linii, heredoc poate fi folosit și dacă doriți să scrieți aceleași date pe mai multe linii, atunci comanda tee este destul de utilă.