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

Lire un fichier texte ligne par ligne

Script

Script Shell (bash, zsh, ksh, dash,…), pour lire un fichier texte, ligne par ligne :

read-file.sh
#variable du fichier
fichier="test.txt"
 
#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

Le fichier test.txt doit exister dans le même répertoire que le script

Explication

Cette méthode est simple, efficace et correcte.

Commande

IFS= read -r

Options

 IFS (Internal Field Separator)

C'est une variable spéciale de votre shell.
Avec elle, quand votre ligne contient des caractères blancs2), read les supprime au début et à la fin, avant de placer le résultat dans ligne.

Entrez la ligne de commande suivante pour visualiser le contenu de la variable IFS utilisée par votre interpréteur de commande.

set | grep IFS

read -r

read avec option -r, sinon les backslashes (\) seront interprétés, or nous voulons conserver le contenu du fichier intact.

Exemple

Le contenu du fichier test.txt utilisé dans cet l'exemple est :

test.txt
Dark
TUX

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

Nom : Dark
Prénom: TUX

Bien entendu, vous pouvez modifier le script selon vos besoins.

1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2) espaces, tabulations
doc/programmation/bash/read/parcourir-fichier-texte.txt · Dernière modification: 16/12/2015 17:38 par milou

Pied de page des forums

Propulsé par FluxBB