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:
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.
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.
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.
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.
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
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ó:
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.
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
Az alábbi képen látható kimenet biztosítja, hogy az összes olvasott sor át lett másolva az új szövegfájlba.
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.