Bash: sor olvasása közben

Bash While Read Line



Amikor bash parancsfájlokon dolgozik, előfordulhat, hogy soronként el kell olvasnia egy fájlt. Magyarázzuk el egy példával. Van néhány adat egy szöveges fájlban, amelyeket parancsfájl segítségével kell végrehajtani vagy feldolgozni. Tehát egy bash szkript futtatása egy szövegfájl feldolgozásához nagyon más. A fájlok soronkénti olvasásához egy meghatározott szintaxist kell követnie. Ez a cikk segít a fájlban lévő sorok olvasásában a Bash while ciklusa segítségével.

A sor olvasása közben alapvető szintaxisa

A következő szintaxist használják a bash shell fájlok olvasásához ciklus közben:







míg olvas -rvonal;
tedd
kidobta '$ sor';
Kész <input.file

A fent említett szintaxisban az „-r” opció átment az olvasási parancsra, amely elkerüli a fordított perjelek értelmezését. Az „input_file” opció a fájl nevét jelzi, amelyet a „read” paranccsal szeretne elérni.



Az IFS rövidítésű belső mezőelválasztó használható, mielőtt az olvasási parancs a null karakterláncra van állítva, ami megakadályozza, hogy a kezdő vagy a végső szóköz levágásra kerüljön.



míg IFS=olvas -rvonal;
tedd
kidobta $ sor;
Kész <input.file

Nyissa meg a terminált a Ctrl + Alt + t billentyűparancs segítségével, majd futtassa rajta a következő parancsokat.





1. példa: Fájl olvasása soronként

Vegyünk egy példát, amelyben feltételezzük, hogy van egy OS.txt nevű fájlunk, amely tartalmazza az összes fontos Linux disztribúció nevét. Ha egy fájlt a „cat” parancs használata nélkül szeretne olvasni, akkor erre a célra a következő parancsot hajthatja végre az adott feladat végrehajtásához. A while ciklust fogjuk használni, amely kiolvassa az OS.txt fájl minden sorát, és minden lépésben tárolja a tartalmat egy változó $ sorban, amelyet később megjeleníthet.

Illessze be a következő Linux disztribúciók nevét az OS.txt fájlba



CentOS
Ubuntu
Debian
LinuxMint $míg olvasvonal;
tedd
kidobta $ sor;
Kész <OS.txt


A fenti parancsból a következő választ kapja a terminál ablakában:

2. példa: Fájl olvasása a bash parancsfájl használatával

Hozzon létre egy bash fájlt, majd adja hozzá az alábbi kódot a fájlhoz a fájl tartalmának olvasásához. Tárolhatja az előző szövegfájlt egy új $ fájlnév változóban, és a $ n változó az egyes sorok értékének megőrzésére szolgál. Most a while ciklus segítségével minden sort leolvasunk egy adott sorszámú fájlból.

#!/bin/bash
fájl név='OS.txt'
n=1
míg olvasvonal;
tedd
# minden sor olvasásához
kidobta „OS elosztó vonal sz.$ n:$ sor'
n= $((n+1))
Kész < $ fájlnév

Mentse a fájlt OSinfo.sh névvel, és írja be a következő parancsot a terminálon a fenti bash parancsfájl futtatásához.

$bashOSinfo.sh

Most futtassa a cat parancsot az eredeti fájltartalom megtekintéséhez.

$macskaOS.txt

Alternatív módszer a fájlok olvasására

Fájlnév átadása parancsból

A bash fájlban hozzá kell adnia a következő kódszkriptet. Ebben a szkriptben egy fájlnevet kell figyelembe vennünk argumentumként. Először is, az argumentum értékét egy $ 1 változó olvassa, amelynek fájlneve olvasható. Ellenőrzi, hogy a fájlnév létezik -e a megadott helyen, majd a while ciklus segítségével soronként olvassa a fájlokat, hasonlóan az előző példához.

#!/bin/bash
fájl név=$ 1
míg olvasvonal;tedd
# minden sor olvasása
kidobta $ sor
Kész < $ fájl.txt

Mentse el a fenti szkriptet „Readline.sh” névvel, és hajtsa végre a következő parancsot a terminálon a fent említett szkript futtatásához:

A fenti kimeneten megfigyelheti, hogy az „OSinfo.txt” fájl argumentumként kerül továbbításra, és az „OSinfo.txt” tartalma megjelenik a további szóközök eltávolítása után. Az eredeti fájl tartalmát a „cat OSinfo.txt” futtatásával jelenítheti meg.

Következtetés

Ebben a cikkben megbeszéltük, hogyan kell olvasni a sorokat a while ciklus segítségével a bash programozás során. Különböző módszereket valósítottunk meg a bash parancsfájl használatával, vagy egyszerűen használhat szöveges fájlt a fájl soronkénti olvasásához. Ha további példákat szeretne megtudni, akkor a fent említett szintaxis használatával végrehajthatja a rendszeren is. Remélem, tetszett ez az oktatóanyag, és egyedi lesz az Ön számára. Bármilyen hiba esetén értesítsünk.