Comment lire les fichiers ligne par ligne dans le script bash

Comment lire les fichiers ligne par ligne dans le script bash
Comment écririez-vous un script bash qui peut traiter un fichier texte une ligne à la fois. Vous avez d'abord besoin d'une syntaxe et d'une approche pour lire la ligne de fichier par ligne. Les méthodes de cette approche sont présentées dans ce tutoriel.

Supposons que vous ayez un fichier nommé entreprise.SMS qui contenu les noms de l'entreprise. Ce fichier contient le contenu suivant.

Entreprise.SMS
Samsung
Nokia
LG
Symphonie
iPhone

Exemple -1: lecture du contenu du fichier à partir de la ligne de commande

Supposons que vous souhaitez lire le fichier, entreprise.SMS, ligne par ligne de la ligne de commande sans 'chat' commande. Exécutez la commande suivante pour effectuer la tâche. alors que Loop lira chaque ligne à partir du fichier entreprise.SMS à chaque étape et stocker le contenu de la ligne dans $ ligne variable qui sera imprimée plus tard.

$ en lisant la ligne; faire écho $ line; fait < company.txt

Exemple -2: lecture du contenu du fichier à l'aide du script

Créez un fichier bash et ajoutez le code suivant pour lire le contenu d'un fichier particulier. Ici, un nom de fichier existant est stocké dans $ nom de fichier variable et $ n La variable est utilisée pour conserver la valeur du numéro de ligne de ce fichier. Comme l'exemple précédent, alors que Loop est utilisé pour lire ce fichier avec le numéro de ligne.

#!/ bac / bash
FileName = 'Company.SMS'
n = 1
en lisant la ligne; faire
# Lire chaque ligne
Echo "Ligne non. $ n: $ line "
n = $ ((n + 1))
fait < $filename

Exécutez la commande suivante pour exécuter le script.

$ bash readfile1.shot

Courir 'chat' commander avec entreprise.SMS fichier pour afficher le contenu d'origine de entreprise.SMS déposer.

$ Cat Company.SMS

Exemple -3: passer le nom de fichier à partir de la ligne de commande et lire le fichier

Créez un fichier bash et ajoutez le script suivant. Ce script prendra le nom de fichier de l'argument de la ligne de commande. La première valeur d'argument est lue par la variable 1 $ qui contiendra le nom de fichier pour la lecture. Si le fichier existe dans l'emplacement actuel, alors alors que Loop lira le fichier ligne par ligne comme l'exemple précédent et imprimera le contenu du fichier.

#!/ bac / bash
nom de fichier = 1 $
en lisant la ligne; faire
# Lire chaque ligne
Echo $ line
fait < $filename

Exécutez le script ci-dessus avec employé.SMS fichier comme valeur d'argument. La sortie affichera le contenu de employé.SMS dossier en supprimant l'espace supplémentaire. Vous pouvez afficher le contenu original de employé.SMS fichier en utilisant 'chat' commande.

$ bash readfile2.Employé TXT.SMS
Employé de $ CAT.SMS

Exemple - 4: Fichier de lecture en omettant Escape BackSlash

Si vous souhaitez lire chaque ligne d'un fichier en omettant une évasion de barreaux arrière, vous devez utiliser '-r' Option avec la commande de lecture dans alors que boucle.

#!/ bac / bash
lors de la ligne de lecture -r; faire
# Lire chaque ligne
Echo $ line
fait < company2.txt

Créer un fichier nommé entreprise2.SMS avec barre arrière et exécutez la commande suivante pour exécuter le script. La sortie affichera le contenu du fichier sans aucune barre de barre.

$ bash readfile3.shot

Vous devrez lire le fichier à de nombreuses fins de programmation. Par exemple, vous pouvez rechercher ou faire correspondre un contenu particulier facilement à partir de n'importe quel fichier en lisant chaque ligne séparément. Donc, c'est une tâche essentielle pour toute programmation. Quelques exemples simples de fichier de lecture dans le script bash sont affichés dans ce tutoriel. Ceux-ci vous aideront à avoir l'idée de lire le contenu du fichier en ligne par ligne en utilisant while en boucle dans le script bash et appliquer dans votre script plus efficacement. Pour plus d'informations, regardez la vidéo!