Bash Za svaki redak u datoteci

Bash Each Line File

For petlja u Bashu može se koristiti s različitim varijacijama za izvođenje više zadataka. Jedna od takvih varijacija je Za svaki redak u datoteci koji je odgovoran za čitanje svih redaka u datoteci. U ovom ćemo članku govoriti o metodama korištenja za svaki redak u datoteci u Bashu.

Napomena: Dolje prikazane metode demonstrirane su na Ubuntu 20.04. Međutim, dobro će funkcionirati i sa bilo kojom drugom distribucijom Linuxa.



Načini korištenja za svaki redak u datoteci u Bashu:

U ovim metodama pokazat ćemo vam primjer u kojem možete pročitati svaki redak iz datoteke, a zatim ga možete prikazati na terminalu ili čak možete spremiti te retke u drugu datoteku. Pogledajmo obje ove metode.



Metoda # 1: Za prikaz linija za čitanje na terminalu:

Za prikaz redaka datoteke na terminalu korištenjem za svaki redak u datoteci, morate izvršiti sljedeće korake:



Korak 1: Stvaranje lažne tekstualne datoteke:

Prije svega, radi demonstracije morate stvoriti tekstualnu datoteku s nekim nasumičnim podacima. Iako se ova tekstualna datoteka može stvoriti bilo gdje, ipak se preporučuje da je stvorite u mapi Početna. Da biste to učinili, kliknite ikonu Upravitelj datoteka istaknutu na donjoj slici:

  • Stvaranje lažne tekstualne datoteke

    Sada desnom tipkom miša kliknite bilo gdje u matičnoj mapi i odaberite opciju Novi dokument s prikazanog izbornika. Zatim odaberite opciju Isprazni dokument. Nakon što je u vašoj početnoj mapi kreiran prazan dokument, navedite naziv po vašem izboru, a zatim proširenje .txt. U ovom primjeru nazvali smo ga ForEachLine.txt.

  • Stvaranje lažne tekstualne datoteke2
    Dvaput kliknite na ovu tekstualnu datoteku da biste je otvorili, a zatim upišite bilo koji nasumični tekst u nju kao što je prikazano na sljedećoj slici. Nakon toga spremite ovu datoteku i zatvorite je.



  • Stvaranje lažne tekstualne datoteke3

    Korak 2: Stvaranje Bash skripte:

    Sada stvorite Bash datoteku na isti način na koji ste stvorili tekstualnu datoteku u mapi Home, ali ovaj put morate unijeti njezin naziv, a zatim proširenje .sh umjesto nastavka .txt. Bash datoteku smo nazvali ForEachLine.sh, ali možete joj dati bilo koje ime po vašem izboru.
    Stvaranje Bash skripte

    Otvorite ovu datoteku dvostrukim klikom na nju, a zatim upišite skriptu prikazanu na donjoj slici u svoju novostvorenu datoteku Bash. Ovdje je prvi redak koji označava da je sljedeća skripta Bash skripta. Jednostavno smo stvorili varijablu pod nazivom File i dodijelili joj ime naše tekstualne datoteke kao vrijednost, tj. ForEachLine.txt. Zatim smo stvorili varijablu pod nazivom Lines i izjednačili je s $ (cat $ File). Ovdje naredba cat čita sadržaj naše tekstualne datoteke, a kada joj prethodi simbol $, tada će sadržaj koji je pročitala ova naredba biti pohranjen u varijabli Lines. Na taj će se način sve linije datoteke pod nazivom ForEachLine.txt pohraniti u varijablu Lines. Zatim smo primijenili petlju For koja ima iteratorsku liniju. Ovaj iterator radi na varijabli Lines koju smo stvorili gore i prolazit će kroz sve retke jednu po jednu. Zatim smo u do-done bloku jednostavno prikazali sve ove retke na terminalu pomoću naredbe echo.
    Stvaranje Bash skripte2

    Korak # 3: Pokretanje Bash skripte:

    Sada pokrenite terminal u Ubuntu 20.04, a zatim pokrenite sljedeću naredbu u njemu kako biste izvršili gore stvorenu Bash skriptu:
    bash ForEachLine.sh
    Pokretanje Bash skripte

    Kada ova naredba učini da se bash skripta izvrši, tada ćete moći vidjeti sve retke svoje tekstualne datoteke na svom terminalu kao što je prikazano na sljedećoj slici:
    Pokretanje Bash skripte

    Metoda # 2: Za spremanje svih pročitanih redova u drugu datoteku:

    U ovoj smo metodi malo izmijenili Bash skriptu stvorenu u gornjoj metodi za spremanje svih pročitanih redaka u novu tekstualnu datoteku umjesto da ih prikažemo na terminalu. Da biste to učinili, izvedite dolje navedene korake:

    Korak # 1: Izmjena gore izrađenog Bash skripta i njegovo pokretanje:

    Otvorite Bash skriptu koju ste stvorili u gornjoj metodi i izmijenite je kao što je prikazano na sljedećoj slici. Jednostavno smo dodali simbol >> nakon kojeg slijedi novi naziv datoteke nakon naredbe echo unutar bloka do-done. Ova će izmjena spremiti sve pročitane retke u novu tekstualnu datoteku umjesto da ih prikazuje na terminalu. Sada ponovno pokrenite Bash skriptu putem terminala s naredbom bash iza koje slijedi naziv datoteke Bash. Ovaj put kada će se Bash skripta pokrenuti, stvorit će novu tekstualnu datoteku čije je ime u ovom slučaju NewFile.txt.
    Izmjena Bash skripte izrađene iznad i njeno pokretanje1

    Korak 2: Pristup novostvorenoj tekstualnoj datoteci:

    Da biste provjerili jesu li svi pročitani retci spremljeni u novu tekstualnu datoteku, jednostavno možete pregledati sadržaj te datoteke pokretanjem sljedeće naredbe na svom terminalu:
    mačka NewFile.txt
    Pristup novostvorenoj tekstualnoj datoteci
    Izlaz prikazan na donjoj slici uvjerit će vas da su svi pročitani redovi kopirani u novu tekstualnu datoteku.
    Pristup novostvorenoj tekstualnoj datoteci2

    Zaključak:

    Na taj način možete koristiti svaki redak u datoteci za čitanje svih redaka datoteke, a zatim manipulirati tim redovima. Upravo smo u ovom članku govorili o dva osnovna scenarija, međutim ovu petlju možete koristiti i za složenije probleme.