Sintaxi bàsica de la línia mentre es llegeix
La sintaxi següent s'utilitza per bash shell per llegir un fitxer mitjançant bucle while:
mentre llegir -rlínia;
fer
trobo '$ línia';
fet <fitxer d’entrada
L’opció ‘-r’ de la sintaxi esmentada es va passar per llegir l’ordre que evita que la barra invertida no s’interpreti. L'opció 'fitxer_entrada' ha representat el nom del fitxer al qual voleu accedir mitjançant l'ordre 'llegir'.
El separador de camps intern abreujat com IFS es pot utilitzar abans que l'ordre de lectura s'estableixi a la cadena nul·la que impedeix retallar l'espai en blanc principal o final.
mentre IFS=llegir -rlínia;
fer
trobo $ línia;
fet <fitxer d’entrada
Obriu el terminal mitjançant la tecla de drecera Ctrl + Alt + t i, a continuació, executeu-hi les ordres següents.
Exemple 1: lectura de fitxers línia per línia
Prenguem un exemple en què suposem que tenim un fitxer anomenat OS.txt que conté els noms de totes les distribucions Linux importants. Si voleu llegir un fitxer sense utilitzar l’ordre ‘cat’, llavors, amb aquest propòsit podeu executar l’ordre següent per realitzar la tasca en particular. Utilitzarem el bucle while que llegirà cada línia del fitxer OS.txt i emmagatzemarà el contingut de cada pas en una variable $ line que podeu mostrar més endavant.
Enganxeu els següents noms de distribucions de Linux a OS.txt
CentOS
Ubuntu
Debian
LinuxMint $mentre llegirlínia;
fer
trobo $ línia;
fet <OS.txt
De l'ordre anterior, obtindreu la següent resposta a la finestra del terminal:
Exemple 2: lectura del fitxer mitjançant l'script bash
Creeu un fitxer bash i, a continuació, afegiu el codi esmentat a continuació en aquest fitxer per llegir el contingut del fitxer. Podeu emmagatzemar el fitxer de text anterior en una nova variable $ nom de fitxer i la variable $ n s'utilitza per mantenir el valor de cada línia. Ara, fent servir el bucle while, llegirem cada línia d’un fitxer amb un número de línia concret.
#! / bin / bashnom de l'arxiu='OS.txt'
n=1
mentre llegirlínia;
fer
# per llegir cada línia
trobo 'US distribution line no.$ n:$ línia'
n= $((n +1))
fet < $ nom de fitxer
Deseu el fitxer amb un nom OSinfo.sh i escriviu l'ordre següent al terminal per executar l'script bash anterior.
$bashOSinfo.sh
Ara, executeu l'ordre cat per veure el contingut original del fitxer.
$gatOS.txt
Mètode alternatiu per a la lectura de fitxers
Utilitzant el nom de fitxer passant d’una ordre
En un fitxer bash, cal afegir el següent script de codi. En aquest script, hem de prendre un nom de fitxer com a argument. En primer lloc, el valor d'un argument és llegit per una variable de $ 1 que té un nom de fitxer per llegir. Comprovarà que el nom del fitxer existeix a la ubicació especificada i, mitjançant el bucle while, llegeix un fitxer línia per línia similar a l'exemple anterior.
#! / bin / bashnom de l'arxiu=$ 1
mentre llegirlínia;fer
# llegint cada línia
trobo $ línia
fet < $ fitxer.txt
Deseu l'script anterior amb el nom 'Readline.sh' i executeu l'ordre següent al terminal per executar l'script esmentat anteriorment:
A la sortida anterior, observareu que el fitxer ‘OSinfo.txt’ passa com a argument i el contingut de ‘OSinfo.txt’ es mostrarà després d’eliminar espais addicionals. Podeu mostrar el contingut original del fitxer executant ‘cat OSinfo.txt’.
Conclusió
En aquest article, hem parlat de com llegir línies mitjançant el bucle while de la programació bash. Hem implementat diferents mètodes mitjançant l'script bash o simplement podeu utilitzar un fitxer de text per llegir una tasca de fitxer línia per línia. Si esteu interessats en obtenir més exemples, podeu utilitzar la sintaxi esmentada anteriorment al vostre sistema. Espero que us hagi agradat aquest tutorial i us sigui únic. Informeu-nos en cas d’error.