Bash A fájl minden sorához

Bash Each Line File



A For loop in Bash különböző változatokkal használható több feladat elvégzésére. Az egyik ilyen változat a fájl minden egyes sorához, amely felelős a fájl összes sorának olvasásáért. Ebben a cikkben a Bash fájlban lévő egyes sorainak használatának módjáról fogunk beszélni.

Megjegyzés: Az alábbiakban bemutatott módszereket az Ubuntu 20.04 rendszeren mutatták be. Mindazonáltal minden más Linux disztribúcióval is jól fognak működni.







Használati módszerek a Bash fájl minden egyes sorához:

Ezekben a módszerekben egy példát mutatunk be, amelyben kiolvashatja a fájl minden sorát, majd megjelenítheti a terminálon, vagy akár tárolhatja ezeket a sorokat egy másik fájlban. Nézzük meg mindkét módszert.



Módszer: Az olvasási sorok terminálon történő megjelenítéséhez:

Ha egy fájl sorait a terminálon szeretné megjeleníteni a fájl egyes soraival, akkor a következő lépéseket kell végrehajtania:



1. lépés: Dummy szövegfájl létrehozása:

Először is létre kell hoznia egy szöveges fájlt néhány véletlenszerű adatokkal a demonstráció érdekében. Bár ez a szövegfájl bárhol létrehozható, erősen ajánlott a Home mappában létrehozni. Ehhez kattintson az alábbi képen kiemelt Fájlkezelő ikonra:





  • Dummy szövegfájl létrehozása

    Most kattintson a jobb gombbal a Home mappában bárhol, és válassza a New Document opciót a megjelenő menüből. Ezután válassza a Dokumentum ürítése lehetőséget. Miután létrehozott egy üres dokumentumot a Home mappában, adja meg a kívánt nevet, majd a .txt kiterjesztést. Ebben a példában ForEachLine.txt néven neveztük el.

  • Dummy szövegfájl létrehozása2
    Kattintson duplán a szövegfájlra a megnyitásához, majd írja be a véletlenszerű szöveget a következő képen látható módon. Ezt követően mentse ezt a fájlt, és zárja be.



  • Dummy szövegfájl létrehozása3

    2. lépés: A Bash Script létrehozása:

    Most hozzon létre egy Bash fájlt ugyanúgy, mint a szövegfájlt a Home mappában, kivéve, hogy ezúttal meg kell adnia a nevét, majd a .sh kiterjesztést a .txt kiterjesztés helyett. Bash fájlunkat ForEachLine.sh néven neveztük el, de tetszés szerinti nevet adhat meg.
    A Bash Script létrehozása

    Nyissa meg ezt a fájlt dupla kattintással, majd írja be az alábbi képen látható szkriptet az újonnan létrehozott Bash fájlba. Itt az első sor azt jelzi, hogy a következő szkript egy Bash -szkript. Egyszerűen létrehoztuk a File nevű változót, és hozzárendeltük a szövegfájlunk nevét, azaz ForEachLine.txt. Ezután létrehoztunk egy Lines nevű változót, és kiegyenlítettük a $ (cat $ File) értékre. Itt a cat parancs beolvassa szövegfájlunk tartalmát, és ha egy $ szimbólum előzi meg, akkor a parancs által olvasott tartalom a Lines változóban tárolódik. Ily módon a ForEachLine.txt nevű fájl összes sora a Lines változóban lesz tárolva. Ezután alkalmaztuk a For hurkot, amelynek iterátor sora van. Ez az iterátor a fent létrehozott Lines változón dolgozik, és egyenként végigmásolja az összes sort. Ezután a kész blokkban ezeket a sorokat egyszerűen megjelenítettük a terminálon az echo parancs használatával.
    A Bash Script létrehozása2

    3. lépés: A Bash Script futtatása:

    Most indítsa el a terminált az Ubuntu 20.04 -ben, majd futtassa a következő parancsot a fent létrehozott Bash -szkript végrehajtásához:
    bash ForEachLine.sh
    A Bash Script futtatása

    Amikor ez a parancs végrehajtja a bash szkriptet, akkor láthatja a szöveges fájl összes sorát a terminálon, amint az az alábbi képen látható:
    A Bash Script futtatása

    Módszer: Az összes olvasott sor mentése egy másik fájlba:

    Ebben a módszerben kissé módosítottuk a fenti módszerrel létrehozott Bash -szkriptet, hogy az összes olvasott sort új szövegfájlba mentsük, ahelyett, hogy megjelenítenénk őket a terminálon. Ehhez hajtsa végre az alábbi lépéseket:

    1. lépés: A fent létrehozott Bash Script módosítása és futtatása:

    Nyissa meg a fenti módszerrel létrehozott Bash -szkriptet, és módosítsa azt a következő képen látható módon. Egyszerűen hozzáadtuk a >> szimbólumot, majd egy új fájlnevet az echo parancs után a do-done blokkon belül. Ez a módosítás az összes olvasott sort új szövegfájlba menti, ahelyett, hogy megjelenítené őket a terminálon. Most futtassa újra a Bash szkriptet a terminálon keresztül a bash paranccsal, majd a Bash fájlnévvel. Ezúttal a Bash szkript futtatásakor új szövegfájlt hoz létre, amelynek neve ebben az esetben NewFile.txt.
    A fent létrehozott Bash Script módosítása és futtatása

    2. lépés: Hozzáférés az újonnan létrehozott szövegfájlhoz:

    Annak ellenőrzéséhez, hogy az összes olvasott sor mentésre került -e az új szövegfájlba, egyszerűen megtekintheti a fájl tartalmát a következő paranccsal a terminálon:
    macska NewFile.txt
    Hozzáférés az újonnan létrehozott szövegfájlhoz
    Az alábbi képen látható kimenet biztosítja, hogy az összes olvasott sor át lett másolva az új szövegfájlba.
    Hozzáférés az újonnan létrehozott szövegfájlhoz2

    Következtetés:

    Ily módon kihasználhatja, hogy a fájl minden sora elolvassa a fájl összes sorát, majd manipulálja ezeket a sorokat. Ebben a cikkben most beszéltünk a két alapvető forgatókönyvről, azonban ezt a hurkot akár bonyolultabb problémákra is használhatja.