Android

Bash: anexează fișierului

Never say "If" writing a Bash script! (Exit codes & logical operators)

Never say "If" writing a Bash script! (Exit codes & logical operators)

Cuprins:

Anonim

În Bash, există mai multe modalități de a anexa text la un fișier. Acest articol explică unele dintre ele.

Pentru a adăuga text la un fișier, trebuie să aveți permisiuni de scriere la acesta. În caz contrar, veți primi o eroare refuzată de permis.

Adăugați la un fișier utilizând operatorul de redirecționare ( >> )

Redirecția vă permite să captați ieșirea dintr-o comandă și să o trimiteți ca intrare către o altă comandă sau fișier. >> Operatorul de redirecționare adaugă ieșirea la un fișier dat.

Există o serie de comenzi pe care le puteți utiliza pentru a imprima text la ieșirea standard și a-l redirecționa către fișier, echo și printf fiind cele mai utilizate.

Pentru a adăuga text la un fișier, specificați numele fișierului după operatorul de redirecționare:

echo "this is a new line" >> file.txt

Când este utilizată cu opțiunea -e , comanda echo interpretează caracterele scăpate înapoi, cum ar fi newline :

echo -e "this is a new line \nthis is another new line" >> file.txt

Dacă doriți să produceți o ieșire mai complexă, utilizați comanda printf care vă permite să specificați formatarea ieșirii:

printf "Hello, I'm %s.\n" $USER >> file.txt

Un alt mod de a anexa text la un fișier este să folosești documentul Here (Heredoc). Este un tip de redirecție care vă permite să treceți mai multe linii de intrare la o comandă.

De exemplu, puteți trece conținutul la comanda cat și să-l anexați la un fișier:

cat «EOF» file.txt Directorul de lucru curent este: $ PWD Sunteți autentificat ca: $ (whoami) EOF

Puteți adăuga ieșirea oricărei comenzi la un fișier. Iată un exemplu cu comanda date :

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

Când aplicați un fișier folosind o redirecționare, aveți grijă să nu folosiți operatorul > pentru a suprascrie un fișier important existent.

Se adaugă la un fișier folosind comanda tee

tee este o utilitate pentru linia de comandă în Linux care citește de la intrarea standard și scrie atât la ieșirea standard, cât și la unul sau mai multe fișiere în același timp.

În mod implicit, comanda tee suprascrie fișierul specificat. Pentru a adăuga ieșirea la fișier, utilizați tee cu opțiunea -a ( --append ):

echo "this is a new line" | tee -a file.txt

echo "this is a new line" | tee -a file.txt >/dev/null

Avantajul utilizării comenzii tee asupra >> operatorului este că tee vă permite să adăugați text la mai multe fișiere simultan și să scrieți fișierele deținute de alți utilizatori împreună cu sudo .

Pentru a adăuga text la un fișier la care nu aveți permisiuni de scriere, preplicați sudo înainte de tee așa cum se arată mai jos:

echo "this is a new line" | sudo tee -a file.txt

tee primește ieșirea comenzii echo , ridică permisiunile sudo și scrie în fișier.

Pentru a adăuga text la mai multe fișiere, specificați fișierele ca argumente la comanda tee :

echo "this is a new line" | tee -a file1.txt file2.txt file3.txt

Concluzie

În Linux, pentru a adăuga text la un fișier, utilizați >> operator de redirecționare sau comanda tee .

terminalul bash