Bash Pentru fiecare linie dintr-un fișier

Bash Each Line File



Bucla For din Bash poate fi utilizată cu diferite variații pentru efectuarea mai multor sarcini. O astfel de variantă este Pentru fiecare linie din fișier care este responsabilă pentru citirea tuturor liniilor dintr-un fișier. În acest articol, vom vorbi despre metodele de utilizare pentru fiecare linie din fișier în Bash.

Notă: Metodele prezentate mai jos au fost demonstrate pe Ubuntu 20.04. Cu toate acestea, vor funcționa bine și cu orice altă distribuție Linux.







Metode de utilizare pentru fiecare linie din fișier în Bash:

În aceste metode, vă vom arăta un exemplu în care puteți citi fiecare linie dintr-un fișier și apoi îl puteți afișa pe terminal sau puteți chiar stoca aceste linii într-un alt fișier. Să aruncăm o privire la ambele metode.



Metoda # 1: Pentru afișarea liniilor de citire pe terminal:

Pentru afișarea liniilor unui fișier pe terminal folosind pentru fiecare linie din fișier, va trebui să efectuați pașii următori:



Pasul 1: Crearea unui fișier text fals:

În primul rând, trebuie să creați un fișier text cu câteva date aleatorii de dragul demonstrației. Deși, acest fișier text poate fi creat oriunde, totuși, este foarte recomandat să îl creați în folderul Acasă. Pentru aceasta, faceți clic pe pictograma Manager fișiere evidențiată în imaginea de mai jos:





  • Crearea unui fișier text fals

    Acum faceți clic dreapta oriunde în folderul Acasă și selectați opțiunea Document nou din meniul care apare. Apoi selectați opțiunea Document gol. Odată ce un document gol a fost creat în folderul Acasă, furnizați numele dorit pentru acesta, urmat de extensia .txt. În acest exemplu, l-am numit ForEachLine.txt.

  • Crearea unui fișier text fals 2
    Faceți dublu clic pe acest fișier text pentru a-l deschide și apoi tastați orice text aleatoriu, așa cum se arată în imaginea următoare. După ce faceți acest lucru, salvați acest fișier și închideți-l.



  • Crearea unui fișier text fictiv 3

    Pasul 2: Crearea scriptului Bash:

    Acum creați un fișier Bash în același mod în care ați creat fișierul text în folderul Acasă, cu excepția faptului că de data aceasta trebuie să furnizați numele său urmat de extensia .sh în loc de extensia .txt. Am denumit fișierul nostru Bash ca ForEachLine.sh, dar îi puteți da orice nume la alegere.
    Crearea scriptului Bash

    Deschideți acest fișier făcând dublu clic pe acesta și apoi tastați scriptul prezentat în imaginea de mai jos în fișierul Bash nou creat. Aici, primul rând este acolo pentru a indica faptul că următorul script este un script Bash. Am creat pur și simplu o variabilă numită File și i-am atribuit numele fișierului text ca valoare, adică ForEachLine.txt. Apoi am creat o variabilă numită Lines și am egalizat-o la $ (cat $ File). Aici, comanda cat citește conținutul fișierului nostru text și când este precedat de un simbol $, atunci conținutul citit de această comandă va fi stocat în variabila Lines. În acest fel, toate liniile fișierului numit ForEachLine.txt vor fi stocate în variabila Lines. Apoi am aplicat bucla For care are o linie iteratoare. Acest iterator funcționează pe variabila Lines pe care am creat-o mai sus și va itera prin toate liniile unul câte unul. Apoi, în blocul finalizat, am afișat pur și simplu toate aceste linii pe terminal utilizând comanda echo.
    Crearea scriptului Bash2

    Pasul 3: Rularea scriptului Bash:

    Acum lansați terminalul în Ubuntu 20.04 și apoi rulați următoarea comandă pentru a executa scriptul Bash creat mai sus:
    bash ForEachLine.sh
    Rularea Scriptului Bash

    Când această comandă va face ca scriptul bash să fie executat, atunci veți putea vedea toate liniile fișierului text de pe terminalul dvs. așa cum se arată în următoarea imagine:
    Rularea Scriptului Bash

    Metoda # 2: pentru salvarea tuturor liniilor de citire într-un alt fișier:

    În această metodă, am modificat ușor scriptul Bash creat în metoda de mai sus pentru a salva toate liniile citite într-un fișier text nou, mai degrabă decât a le afișa pe terminal. Pentru aceasta, urmați pașii menționați mai jos:

    Pasul 1: Modificarea scriptului Bash creat mai sus și executarea acestuia:

    Deschideți scriptul Bash pe care l-ați creat în metoda de mai sus și modificați-l așa cum se arată în imaginea următoare. Am adăugat pur și simplu simbolul >> urmat de un nou nume de fișier după comanda echo din blocul „Do-done”. Această modificare va salva toate liniile citite într-un nou fișier text în loc să le afișeze pe terminal. Acum rulați din nou scriptul Bash prin terminal cu comanda bash urmată de numele fișierului Bash. De data aceasta când va rula scriptul Bash, va crea un nou fișier text al cărui nume în acest caz este NewFile.txt.
    Modificarea scriptului Bash creat mai sus și executarea acestuia 1

    Pasul 2: accesarea fișierului text nou creat:

    Pentru a verifica dacă toate liniile citite au fost salvate în noul fișier text, puteți vizualiza pur și simplu conținutul acelui fișier executând următoarea comandă în terminal:
    pisică NewFile.txt
    Accesarea fișierului text nou creat
    Rezultatul afișat în imaginea de mai jos vă va asigura că toate liniile citite au fost copiate în noul fișier text.
    Accesarea fișierului text nou creat2

    Concluzie:

    În acest fel, puteți utiliza pentru fiecare linie din fișier pentru a citi toate liniile unui fișier și apoi manipulați-l cu aceste linii. Tocmai am vorbit despre cele două scenarii de bază din acest articol, cu toate acestea, puteți folosi chiar această buclă pentru probleme mai complexe.