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
doc:programmation:bash:read:parcourir-fichier-texte [17/08/2010 17:27]
cthuluh
doc:programmation:bash:read:parcourir-fichier-texte [16/12/2015 17:38] (Version actuelle)
milou
Ligne 1: Ligne 1:
-====== Lire un fichier ligne par ligne ======+====== ​ Lire un fichier ​texte 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 ​:+  * Objet : script bash read file 
 +  * Niveau requis :​{{tag>​débutant avisé}} 
 +  * Commentaires : //​Lire ​un fichier ligne par ligne avec le script read file// 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) 
 +  * Suivi : {{tag>​à-tester}} 
 +    * Création par [[user>​mattux]] le  09/​07/​2007 
 +    * Testé par .... le .... 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=116004#​p116004 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))  
 + 
 + 
 + 
 +===== Script ===== 
 + 
 +Script Shell (bash, zsh, ksh, dash,​...), ​pour lire un fichier texte, ligne par ligne : 
 +<code bash read-file.sh>​ 
 +#variable du fichier 
 +fichier="​test.txt"​
  
-<​code>​ 
 #​initialisation du compteur #​initialisation du compteur
 i=0 i=0
Ligne 21: Ligne 36:
 done < "​$fichier"​ done < "​$fichier"​
  
-exit 0 +exit 0</​code>​ 
-</​code>​+ 
 +<​note>​Le fichier ''​test.txt''​ doit exister dans le même répertoire que le script</note> 
 + 
 +===== Explication ===== 
 + 
 +Cette méthode est simple, efficace et __correcte__. 
 + 
 +==== Commande ==== 
 + 
 +<code user>IFS= read -r</​code>​ 
 + 
 +=== 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 user>set | grep IFS</​code>​ 
 +=== read -r === 
 + 
 +read avec option -r, sinon les backslashes (**\**) seront interprétés,​ or nous voulons conserver le contenu du fichier intact.
  
-Explication : cette méthode est simple, efficace et __correcte__. +===== Exemple =====
-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 ​contenait ​+Le contenu du fichier ​''​test.txt''​ utilisé ​dans cet l'​exemple ​est 
-<code>Dark +<file config test.txt> 
-TUX</​code>​+Dark 
 +TUX
  
-Lors de l'​exécution du script, on aurait ​à l'​écran :+</​file>​ 
 +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 devrez ​modifier le code selon vos besoins.+Bien entendu, vous pouvez ​modifier le script ​selon vos besoins.
doc/programmation/bash/read/parcourir-fichier-texte.1282058852.txt.gz · Dernière modification: 12/09/2010 16:49 (modification externe)

Pied de page des forums

Propulsé par FluxBB