Articles

En parcourant le contenu d’un fichier dans Bash

Souvent, il est nécessaire de lire chaque ligne d’un fichier à l’aide d’un script bash. Il existe diverses approches pour lire les lignes d’un fichier. Dans l’exemple ci-dessous, nous avons d’abord décrit comment créer un exemple de fichier, puis exécuter un script lisant cet exemple de fichier.

Créer un fichier pour le Lire

# Open vi Editorvi a_file.txt# Input the below linesMondayTuesdayWednesdayThursdayFridaySaturdaySunday# cat the filecat a_file.txt

Exécute le code ci-dessus nous donne le résultat suivant −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Utilisation de la Do-While

Dans cette approche, nous utilisons une boucle while pour lire un fichier., Nous donnons le nom de fichier comme entrée à la fin du fichier. Nous créons d’abord un script et lui donnons l’autorisation d’exécution. Alors seulement il peut lire le fichier et afficher le résultat.

#!/bin/bashwhile read LINEdo echo "$LINE"done < a_file.txt

Exécute le code ci-dessus nous donne le résultat suivant −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Utilisation et

En suivant l’approche que nous utilisons une boucle for avec la clause in. Ici, nous stockons le résultat de la commande cat (Qui est chaque ligne) dans une variable qui fait partie de la boucle for et qui fait écho à la variable.,

#!/bin/bashfile=a_file.txtfor i in `cat $file`doecho "$i"done

Exécute le code ci-dessus nous donne le résultat suivant −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Avec seulement echo

On peut aussi obtenir le contenu du fichier à l’aide seulement d’écho. Mais le résultat sortira comme un tableau de lignes et imprimé comme une sortie d’une ligne montrant la combinaison de toutes les lignes.

echo $( < a_file.txt )

L’exécution du code ci-dessus nous donne le résultat suivant:

Monday Tuesday Wednesday Thursday Friday Saturday Sunday

lecture D’un fichier avec des lignes vides

Si un fichier a des lignes vides, nous pouvons les éviter dans la sortie en utilisant le code suivant., Cela utilise le Separator (séparateur de champ interne) est défini sur chaîne vide afin que les lignes vides soient traitées comme un séparateur de champ et évitées dans la sortie. En supposant qu’il y ait des lignes vides entre la 3ème et la 4ème ligne, ces privilèges vides ne seront pas imprimés.

#!/bin/bashwhile IFS = read -r LINEdo echo "$LINE"done < a_file.txt

Exécute le code ci-dessus nous donne le résultat suivant −

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

Publié le 03-Jan-2020 11:45:05

Annonces