Bash bucla prin fișiere într-un director

Bash Loop Through Files Directory



În Ubuntu, inclusiv Bash, buclele au făcut posibilă aplicarea operațiunilor pe mai multe fișiere. Buclarea este cel mai eficient lucru, deoarece permite utilizatorului să aplice aceeași logică elementului în mod repetat, utilizând o linie de cod mică.

Pentru a înțelege conceptul de looping peste fișiere din director, aveți nevoie de acces la aplicația și serviciile Ubuntu. Când aveți unele privilegii, puteți opera numai cu fișiere și directoare.







Ar trebui să fi instalat Bash pe sistemul de operare Ubuntu. În unele instalații, este instalat implicit în actualizarea pachetelor. Dacă este deja instalat, trebuie să actualizați versiunea, deoarece trebuie să fie peste 4. Pentru a continua ghidul curent, trebuie să păstrați versiunea de mai sus 4. Pentru a verifica versiunea Bash preinstalat în sistemul dvs., utilizați comanda de pe terminalul Ubuntu.



$Bash--versiune



Deci, trebuie să efectuați unele funcții pe fișiere și directoare. Puteți executa comenzile explicate mai jos în orice director la alegere. Dar, pentru a fi precis, este de preferat să creați un nou director, astfel încât toate bunurile acestuia să fie ușor accesibile atunci când îl deschideți.





Primul pas este crearea unui director. Am luat un exemplu de nume al directorului abc. Creați un director executând comanda.

$mkdirabc



După crearea directorului, acum trebuie să efectuați toate comenzile pentru acesta. Deci, după crearea directorului, comutați la acel director. Utilizați comanda citată mai jos:

$CDabc

După ce accesați directorul, creați acum câteva fișiere utilizând comanda tactilă.

$atingerefile1.txt

Multe metode sunt folosite pentru a crea un fișier în Ubuntu. Pe lângă comanda tactilă, am folosit comanda echo aici pentru a crea un fișier și pentru a adăuga conținutul din acesta în mod colectiv într-o singură comandă:

$aruncatLinux, ubuntu, Postgresql>file7.txt

Acest fișier este creat pe un director simplu care rulează în mod implicit în prezent. Deci, numele directorului nou creat nu este adăugat cu promptul de comandă. De asemenea, puteți crea fișiere utilizând un interval și o extindere în comanda tactilă.

$atingerefişier-{1..8}.txt

Prin utilizarea acestei comenzi în fișiere noi de extensii .txt vor fi create utilizând o singură comandă.

După aceea, acum puteți parcurge directorul nou creat. Afișați numele fișierelor. Deoarece trebuie să parcurgem fișierele prezente în director, avem nevoie de o buclă. Buclele sunt foarte eficiente de utilizat, deoarece preluează datele în mai puțin timp, necesitând mai puțină intrare. Aici vom folosi o buclă for. Utilizând această buclă, fiecare nume de fișier va fi afișat în linia următoare.

$pentru fişier în *;do aruncat $ fișier;Terminat

* este utilizat pentru toate fișierele prezente în acest director. Acest lucru permite buclei „pentru” să prindă toate fișierele. Dar pentru a face ieșirea precisă, puteți adăuga câțiva termeni cu semnul asterisc. De exemplu, „fișier- *” este utilizat pentru toate fișierele care încep de la fișier. Și * .txt pentru a prelua fișierele care au extensii .txt. Vom folosi aceste exemple mai departe în articol.

Această buclă va funcționa astfel încât să preia toate fișierele din director și apoi să afișeze toate fișierele prin comanda echo. Semnul $ aici reprezintă numele fișierului. Din rezultat, puteți vedea că este afișat fiecare nume de fișier.

După verificarea fișierelor create prin afișarea numelor fișierelor, acum este timpul să introduceți valoarea în fișiere, deoarece fișierele create sunt goale. Acest lucru se poate face manual deschizând fiecare fișier din editorul de text și apoi scriind datele. A doua opțiune este să introduceți date în fiecare fișier prin comanda din terminal. Dar necesită timp pentru a introduce datele în fiecare fișier printr-o singură comandă pentru fiecare fișier. Dar se poate face ușor și colectiv folosind pentru buclă într-o singură comandă.

$pentru fişier în *;do aruncat -2 $ fișier nLinux Ubuntu> $ fișier;Terminat

După executarea comenzii, valoarea a fost introdusă în fiecare fișier pe care l-am creat. Când este utilizat cu ecou, ​​semnalizatorul „-e” va păstra noua linie din fișier. Pentru a vedea datele introduse, puteți naviga la directorul „abc”. Acum deschideți orice fișier text. Fișierul nu mai este gol.

‘$ Fișier va afișa numele fișierului mai întâi în fișier, iar datele pe care le-ați introdus vor fi previzualizate pe a doua linie, deoarece n este folosit pentru a muta cuvintele folosite după aceasta pe o altă linie. De asemenea, puteți verifica datele introduse prin comandă.

$pentru fişier în *;do pisică $ fișier;Terminat

Comanda Cat este utilizată pentru a prelua datele prezente în toate fișierele din director.

Atât procedura de introducere a datelor, cât și preluarea acestora se poate face printr-o singură comandă.

$pentru fişier în *;do aruncat-Și$ fișier nbash programare> $ fișier;pisică $ fișier;Terminat

Primul pas este să scrieți datele în fișier și apoi să le afișați. Când executați comanda, ieșirea va fi după cum urmează:

Fiecare fișier conține aceeași valoare. Acest lucru se datorează buclei „pentru”.

Știm bucla pentru preluarea datelor și inserarea valorilor etc., dar bucla este folosită și pentru a crea copii de rezervă. Aceste fișiere au extensia .bak la sfârșit. Acum executați comanda de rezervă în shell pentru a vedea copia de rezervă a fiecărui fișier.

$pentru fişier în *;do cp $ fișier $ fișier.in spate;Terminat;

Cuvântul cheie cp este utilizat pentru a face backup pentru toate fișierele. Acum, pentru a vedea fișierele pe care se aplică această comandă. Folosim comanda ca:

$eu sunt-

Acum este vizibil din ieșire că sunt afișate detaliile fișierelor. Data, numele fișierului, numele utilizatorului și ora la care a fost șters. De asemenea, aveți o copie exactă a fiecărui fișier.

Dacă vrem doar fișierele jpeg. Vom folosi acest lucru în comandă

$pentru fişier în *.jpeg;do aruncat $ fișier;Terminat

Aceasta va aduce numai numele imaginilor.

O descoperire simplă poate face, de asemenea, aceeași funcție. Va prelua toate fișierele cu o extensie .sh.

$găsi. - Nume*SH

Vom folosi cuvântul cheie găsi în buclă pentru.

$pentru fişier în *;dogăsi. Fişier.*;Terminat

Aceasta va aduce toate fișierele în directorul curent. Acestea au extensii .bak, .jpeg, .txt. etc.

Acum, dacă doriți să vedeți numele tuturor fișierelor de director și datele din interiorul acestora, acest lucru se face și prin bucla „pentru”.

$pentru fişier în *;do fişier $ fișier;Terminat

Concluzie

Buclarea prin fișierele din orice director nu mai este dificilă, după cum știm, folosirea buclelor în Bash și performanța pe sistemele de operare Linux. Acest tutorial este un ghid complet pentru crearea, accesarea și efectuarea operațiunilor pe director folosind o buclă „pentru”.