Bash en lisant la ligne

Bash en lisant la ligne
Lorsque vous travaillez sur des scripts bash, vous devrez parfois lire une ligne de fichier par ligne. Expliquons avec un exemple. Vous avez des données dans un fichier texte qui doit être exécuté ou traité à l'aide d'un script. Donc, exécuter un script bash pour traiter un fichier texte est très différent. Vous devez suivre une syntaxe spécifiée pour lire une ligne de fichier par ligne. Cet article vous aidera à lire une ligne à partir d'un fichier en utilisant la boucle while en bash.

Syntaxe de base de la ligne de lecture de While

La syntaxe suivante est utilisée pour Bash Shell pour lire un fichier en utilisant While Loop:

lors de la ligne de lecture -r;
faire
écho "$ line";
fait < input.file

L'option '-r' dans la syntaxe susmentionnée passée passe pour lire la commande qui évite les échappements de barre de barre d'être interprétés. L'option 'input_file' a représenté le nom de votre fichier auquel vous souhaitez accéder à l'aide de la commande 'read'.

Le séparateur de champ interne abrégé comme Ifs peut être utilisé avant que la commande de lecture ne soit définie sur la chaîne nulle qui empêche le fait de diriger les espaces.

while ifs = lise -r Line;
faire
Echo $ line;
fait < input.file

Ouvrez le terminal en utilisant 'Ctrl + alt + t' raccourci puis exécuter les commandes suivantes dessus.

Exemple n ° 1: lecture de fichiers ligne par ligne

Prenons un exemple dans lequel supposons que nous ayons un fichier nommé 'OS.SMS' contenant les noms de toutes les distributions Linux importantes. Si vous souhaitez lire un fichier sans utiliser le 'chat' Commande alors, à cet effet, vous pouvez exécuter la commande suivante pour effectuer la tâche particulière. Nous utiliserons la boucle while qui lira chaque ligne à partir du fichier 'OS.SMS' et stocke le contenu à chaque étape d'une ligne $ variable que vous pouvez afficher plus tard.

Collez les noms suivants des distributions Linux dans le 'OS.SMS'

Centos
Ubuntu
Debian
Linuxmint
en lisant la ligne;
faire
Echo $ line;
fait < OS.txt


À partir de la commande ci-dessus, vous obtiendrez la réponse suivante sur la fenêtre du terminal:

Exemple n ° 2: Fichier de lecture à l'aide du script bash

Créez un fichier bash, puis ajoutez le code mentionné ci-dessous dans ce fichier pour lire le contenu du fichier. Vous pouvez stocker le fichier texte précédent dans une nouvelle variable $ nom de fichier et variable $ n est utilisé pour conserver la valeur de chaque ligne. Maintenant, en utilisant la boucle while, nous lirons chaque ligne à partir d'un fichier avec un numéro de ligne particulier.

#!/ bac / bash
FileName = 'OS.SMS'
n = 1
en lisant la ligne;
faire
# pour lire chaque ligne
Echo "Ligne de distribution du système d'exploitation no. $ n: $ line "
n = $ ((n + 1))
fait < $filename

Enregistrer le fichier avec un nom 'Osinfo.sh ' et tapez la commande suivante sur le terminal pour exécuter le script bash ci-dessus.

$ bash osinfo.shot

Maintenant, exécutez la commande cat pour afficher le contenu du fichier d'origine.

$ Cat OS.SMS

Méthode alternative pour la lecture de fichiers

En utilisant le nom de fichier de passage à partir d'une commande

Dans un fichier bash, vous devez ajouter le script de code suivant. Dans ce script, nous devons prendre un nom de fichier comme argument. Premièrement, la valeur d'un argument est lue par un 1 $ variable qui a un nom de fichier pour la lecture. Il vérifiera que le nom de fichier existe à l'emplacement spécifié, puis en utilisant la boucle while, il lis une ligne de fichier par ligne similaire à l'exemple précédent.

#!/ bac / bash
nom de fichier = 1 $
si [[ ! -f $ nom de fichier]]; alors
Echo "Erreur, vous devez saisir un nom de fichier en tant que paramètre de ligne de commande"
sortie
Fi
en lisant la ligne; faire
# Lire chaque ligne
Echo $ line
fait < $filename

Enregistrer le script ci-dessus avec nommé 'Readline.sh ' et exécutez la commande suivante sur le terminal pour exécuter le script mentionné ci-dessus:

$ BASH readline.shos.SMS

Vous pouvez voir que le paramètre a été utilisé comme $ nom de fichier, et lire ligne par ligne avec le Pendant que vous lisez la ligne Syntaxe du paramètre fourni sur la ligne de commande.

Conclusion

Dans cet article, nous avons discuté de la lecture de lignes en utilisant la boucle While dans la programmation bash. Nous avons implémenté différentes méthodes à l'aide du script bash ou vous pouvez simplement utiliser un fichier texte pour effectuer la lecture d'une tâche de fichier en ligne par ligne. Si vous souhaitez en savoir plus d'exemples, en utilisant la syntaxe susmentionnée, vous pouvez également exécuter sur votre système. J'espère que vous avez apprécié ce tutoriel et que vous auriez unique pour vous. Faire savoir en cas d'erreur.