Lire les lignes de fichier dans Bash

Fumbani Banda 30 janvier 2023
  1. Lire le fichier ligne par ligne dans Bash avec la commande read
  2. Lire le fichier ligne par ligne dans Bash avec l’option IFS et -r
Lire les lignes de fichier dans Bash

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
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Article connexe - Bash File