Lire les lignes de fichier dans Bash
-
Lire le fichier ligne par ligne dans Bash avec la commande
read
-
Lire le fichier ligne par ligne dans Bash avec l’option
IFS
et-r
Ce tutoriel lit un fichier ligne par ligne dans un script bash avec la commande read
.
Voici le contenu du fichier texte que nous allons utiliser.
john\n ,
james\n ,
joe,
jack,
jill
Lire le fichier ligne par ligne dans Bash avec la commande read
Le fichier names.txt
est redirigé vers la boucle while
. La commande read
traite chaque ligne du fichier et l’affecte à la variable p
, et la commande echo
l’affiche. Une fois que toutes les lignes sont traitées, la boucle while
s’arrête. La commande read
ignore les espaces de début, ce qui peut être trompeur dans certains cas.
printf "Names\n"
while read p;
do
echo "$p"
done <names.txt
Production :
Names
johnn ,
jamesn ,
joe,
jack,
jill
Lire le fichier ligne par ligne dans Bash avec l’option IFS
et -r
Par défaut, la commande read
supprime tous les espaces de début et interprète la barre oblique inverse comme un caractère d’échappement. Nous ajoutons l’option -r
pour désactiver l’échappement de la barre oblique inverse et pour désactiver le rognage des espaces, afin que le séparateur de champ interne (IFS) soit effacé.
printf "Names\n"
while IFS= read -r line; do
printf '%s\n' "$line"
done < names.txt
Production :
Names
john\n ,
james\n ,
joe,
jack,
jill