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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
doc:programmation:bash:read:parcourir-fichier-texte [19/08/2010 21:11] smolski |
doc:programmation:bash:read:parcourir-fichier-texte [15/12/2015 19:36] milou [Exemple] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== readfile ====== | + | ====== read file ====== |
+ | |||
+ | * Objet : script bash read file | ||
+ | * Niveau requis :{{tag>débutant avisé}} | ||
+ | * Commentaires : //Lire un fichier ligne par ligne// | ||
+ | * 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 !)) | ||
- | Lire un fichier ligne par ligne | ||
===== Script ===== | ===== Script ===== | ||
Script Shell (bash, zsh, ksh, dash,...), pour lire un fichier texte, ligne par ligne : | Script Shell (bash, zsh, ksh, dash,...), pour lire un fichier texte, ligne par ligne : | ||
- | <code bash> | + | <code bash read-file.sh> |
+ | #variable du fichier | ||
+ | fichier="test.txt" | ||
#initialisation du compteur | #initialisation du compteur | ||
i=0 | i=0 | ||
Ligne 25: | Ligne 37: | ||
exit 0</code> | exit 0</code> | ||
+ | |||
+ | <note>Le fichier ''test.txt'' doit exister dans le même répertoire que le script</note> | ||
===== Explication ===== | ===== Explication ===== | ||
Ligne 32: | Ligne 46: | ||
==== Commande ==== | ==== Commande ==== | ||
- | IFS= read -r | + | <code user>IFS= read -r</code> |
=== Options === | === Options === | ||
- | IFS | + | IFS (Internal Field Separator) |
C'est une variable spéciale de votre shell. \\ | 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**. | 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**. | ||
- | read -r | + | 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 contenudu fichier intact. | + | read avec option -r, sinon les backslashes (**\**) seront interprétés, or nous voulons conserver le contenu du fichier intact. |
===== Exemple ===== | ===== Exemple ===== | ||
- | Si le fichier test.txt indiqué dans l'exemple contient : | + | Le contenu du fichier ''test.txt'' utilisé dans cet l'exemple est : |
- | <code>Dark | + | <file config test.txt> |
- | TUX</code> | + | Dark |
+ | TUX | ||
+ | </file> | ||
Lors de l'exécution du script, on aura à 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 devez modifier le code selon vos besoins. | + | Bien entendu, vous pouvez modifier le script selon vos besoins. |