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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:programmation:bash:read:parcourir-fichier-texte [19/12/2009 22:14]
127.0.0.1 édition externe
doc:programmation:bash:read:parcourir-fichier-texte [30/12/2013 18:12]
MicP [Exemple] reformulation et formatage
Ligne 1: Ligne 1:
-====== ​Lire un fichier ligne par ligne ======+====== ​read file ======
  
-Si vous désirez lire avec un Script Shell (bash), un fichier texte, ligne par ligne, voici le code à utiliser ​:+Lire un fichier ligne par ligne 
 + 
 +===== Script ===== 
 + 
 +Script Shell (bash, zsh, ksh, dash,...), pour lire un fichier texte, ligne par ligne : 
 +<code bash> 
 +#variable du fichier 
 +fichier="​test.txt"​
  
-<​code>​ 
 #​initialisation du compteur #​initialisation du compteur
-x=0+i=0
  
-#​initialisation de la boucle +while IFS= read -r ligne; ​do
-while [ $x -lt $(wc -l <$file) ] +
-do+
  
-#incrémentation ​du compteur +  ​#traitement des lignes 1 et 2 
-x=$(($x+1))+  if [ "​$i"​ -eq 1 ]; then 
 +    echo "​Nom: ​ $ligne"​ 
 +  elif [ "​$i"​ -eq 2 ]; then 
 +    echo "​Prénom:​ $ligne"​ 
 +  fi 
 +   
 +  # incrementation ​du compteur 
 +  i=$(($i+1))
  
-#​récupération de la ligne +done < "$fichier"​
-ln=$(head -n $x $file | tail -n 1)+
  
-#traitement des lignes 1 et 2 +exit 0</​code>​
-if [ $x -eq 1]; then +
-   echo "Nom: " $ln +
-elif [ $x -eq 2]; then +
-   echo "​Prénom:"​ $ln +
-fi+
  
-done+<​note>​Le fichier ''​test.txt''​ doit exister dans le même répertoire que le script</​note>​
  
-exit 0 +===== Explication =====
-</​code>​+
  
-Si le fichier test.txt ​indiqué ​dans l'​exemple ​contiendrait ​:+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 //​blancs//​((espaces,​ tabulations)),​ **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. 
 +<​code>​set | grep IFS</​code>​ 
 +=== read -r === 
 + 
 +read avec option -r, sinon les backslashes (**\**) seront interprétés,​ or nous voulons conserver le contenudu ​fichier ​intact. 
 + 
 +===== Exemple ===== 
 + 
 +Le contenu du fichier ''​test.txt''​ utilisé ​dans cet l'​exemple ​est :
 <​code>​Dark <​code>​Dark
 TUX</​code>​ TUX</​code>​
  
-Lors de l'​exécution du script, on aurait ​à l'​écran :+Lors de l'​exécution du script, on aura à l'​écran :
 <​code>​Nom : Dark <​code>​Nom : Dark
 Prénom: TUX</​code>​ Prénom: TUX</​code>​
  
- +Bien entendu, vous pouvez ​modifier le script ​selon vos besoins.
-Bien entendu, vous devrez ​modifier le code selon vos besoins.+
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