Bash Pre každý riadok v súbore

Bash Each Line File



Slučku For in Bash je možné použiť s rôznymi variáciami na vykonávanie viacerých úloh. Jednou z takýchto variácií je Pre každý riadok v súbore, ktorý je zodpovedný za prečítanie všetkých riadkov v súbore. V tomto článku budeme hovoriť o spôsoboch použitia pre každý riadok súboru v Bash.

Poznámka: Nasledujúce metódy boli demonštrované na Ubuntu 20.04. Budú však dobre fungovať aj s akoukoľvek inou distribúciou Linuxu.







Spôsoby použitia pre každý riadok v súbore v Bash:

Pri týchto metódach vám ukážeme príklad, v ktorom môžete prečítať každý riadok zo súboru, a potom ho môžete buď zobraziť na termináli, alebo dokonca môžete tieto riadky uložiť do iného súboru. Pozrime sa na obe tieto metódy.



Metóda č. 1: Na zobrazenie riadkov na čítanie na termináli:

Na zobrazenie riadkov súboru na termináli pomocou pre každý riadok v súbore budete musieť vykonať nasledujúce kroky:



Krok č. 1: Vytvorenie fiktívneho textového súboru:

Na ukážku musíte najskôr vytvoriť textový súbor s niektorými náhodnými údajmi. Tento textový súbor je však možné vytvoriť kdekoľvek, ale dôrazne sa odporúča vytvoriť ho v domovskom priečinku. Ak to chcete urobiť, kliknite na ikonu Správca súborov zvýraznenú na obrázku nižšie:





  • Vytvorenie fiktívneho textového súboru

    Teraz kliknite pravým tlačidlom myši kdekoľvek v domovskom priečinku a v zobrazenej ponuke vyberte možnosť Nový dokument. Potom vyberte možnosť Prázdny dokument. Po vytvorení prázdneho dokumentu vo vašom domovskom priečinku zadajte požadovaný názov a potom príponu .txt. V tomto prípade sme ho pomenovali ako ForEachLine.txt.

  • Vytvorenie fiktívneho textového súboru 2
    Dvakrát kliknite na tento textový súbor, otvorte ho a potom doň zadajte ľubovoľný text, ako je znázornené na nasledujúcom obrázku. Potom tento súbor uložte a zatvorte.



  • Vytvorenie fiktívneho textového súboru 3

    Krok č. 2: Vytvorenie bash skriptu:

    Teraz vytvorte súbor Bash rovnakým spôsobom, akým ste vytvorili textový súbor v domovskom priečinku, okrem toho, že tentoraz musíte namiesto prípony .txt zadať jeho názov a za ním príponu .sh. Náš súbor Bash sme pomenovali ForEachLine.sh, ale môžete mu dať ľubovoľné meno podľa vlastného výberu.
    Vytvorenie bash skriptu

    Otvorte tento súbor dvojitým kliknutím na neho a potom zadajte skript zobrazený na obrázku nižšie do novo vytvoreného súboru Bash. Tu je prvý riadok, ktorý naznačuje, že nasledujúci skript je Bash skript. Jednoducho sme vytvorili premennú s názvom Súbor a priradili sme jej ako názov hodnotu nášho textového súboru, t.j. ForEachLine.txt. Potom sme vytvorili premennú s názvom Lines a vyrovnali ju na $ (cat $ File). Tu príkaz mačka prečíta obsah nášho textového súboru a keď mu predchádza symbol $, potom obsah prečítaný týmto príkazom bude uložený do premennej Lines. Týmto spôsobom budú všetky riadky súboru s názvom ForEachLine.txt uložené v premennej Lines. Potom sme použili slučku For, ktorá má iterátorový riadok. Tento iterátor funguje na premennej Lines, ktorú sme vytvorili vyššie, a bude iterovať všetky riadky jeden po druhom. Potom sme v hotovom bloku jednoducho zobrazili všetky tieto riadky na termináli pomocou príkazu echo.
    Vytvorenie Bash Script2

    Krok č. 3: Spustenie bash skriptu:

    Teraz spustite terminál v Ubuntu 20.04 a potom v ňom spustite nasledujúci príkaz na spustenie vyššie vytvoreného skriptu Bash:
    bash ForEachLine.sh
    Spustenie bash skriptu

    Keď tento príkaz spustí bash skript, budete môcť na svojom termináli vidieť všetky riadky vášho textového súboru, ako je znázornené na nasledujúcom obrázku:
    Spustenie bash skriptu

    Metóda č. 2: Uloženie všetkých riadkov na čítanie do iného súboru:

    Pri tejto metóde sme mierne upravili skript Bash vytvorený vyššie uvedenou metódou na ukladanie všetkých prečítaných riadkov do nového textového súboru, a nie na ich zobrazenie na termináli. Za týmto účelom vykonajte nižšie uvedené kroky:

    Krok č. 1: Úprava vyššie uvedeného skriptu Bash a jeho spustenie:

    Otvorte skript Bash, ktorý ste vytvorili vyššie uvedenou metódou, a upravte ho, ako je znázornené na nasledujúcom obrázku. Jednoducho sme pridali symbol >>, za ktorým nasleduje nový názov súboru, za príkaz echo do bloku do-done. Táto úprava uloží všetky prečítané riadky do nového textového súboru, namiesto ich zobrazenia na termináli. Teraz znova spustite skript Bash cez terminál pomocou príkazu bash, za ktorým nasleduje názov súboru Bash. Tentoraz, keď sa spustí bash skript, vytvorí nový textový súbor, ktorého názov je v tomto prípade NewFile.txt.
    Úprava Bash skriptu vytvoreného nad ním a jeho spustenia1

    Krok č. 2: Prístup k novovytvorenému textovému súboru:

    Ak chcete overiť, či boli všetky prečítané riadky uložené do nového textového súboru, môžete si jednoducho zobraziť obsah tohto súboru spustením nasledujúceho príkazu na termináli:
    mačka NewFile.txt
    Prístup k novovytvorenému textovému súboru
    Výstup zobrazený na obrázku nižšie vám zaistí, že všetky prečítané riadky boli skopírované do nového textového súboru.
    Prístup k novovytvorenému textovému súboru2

    Záver:

    Týmto spôsobom môžete použiť pre každý riadok v súbore na prečítanie všetkých riadkov súboru a potom s nimi manipulovať. Práve sme hovorili o dvoch základných scenároch v tomto článku, túto slučku však môžete použiť aj na zložitejšie problémy.