logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Lire un fichier ligne par ligne

Si vous désirez lire avec un Script Shell (bash, zsh, ksh, dash,…), un fichier texte, ligne par ligne, voici le code à utiliser :

#initialisation du compteur
i=0

while IFS= read -r ligne; do

  #traitement des lignes 1 et 2
  if [ "$i" -eq 1 ]; then
    echo "Nom:  $ligne"
  elif [ "$i" -eq 2 ]; then
    echo "Prénom: $ligne"
  fi
  
  # incrementation du compteur
  i=$(($i+1))

done < "$fichier"

exit 0

Explication : cette méthode est simple, efficace et correcte. Il est nécessaire d'utiliser l'option -r de read, sinon les backslashes (\) seront interprétés, or nous voulons conserver le contenu du fichier intact. De plus, on utilise IFS= read. IFS est une variable spéciale de votre shell. Quand elle contient des caractères blancs (espaces, tabulations), read supprime les caractères blancs de début et de fin, avant de placer le résultat dans ligne.

Si le fichier test.txt indiqué dans l'exemple contiendrait :

Dark
TUX

Lors de l'exécution du script, on aurait à l'écran :

Nom : Dark
Prénom: TUX

Bien entendu, vous devrez modifier le code selon vos besoins.

doc/programmation/bash/read/parcourir-fichier-texte.1282058822.txt.gz · Dernière modification: 12/09/2010 16:49 (modification externe)

Pied de page des forums

Propulsé par FluxBB