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 Prochaine révision Les deux révisions suivantes | ||
doc:programmation:bash:read:parcourir-fichier-texte [18/08/2010 10:32] smolski |
doc:programmation:bash:read:parcourir-fichier-texte [19/08/2010 21:39] smolski |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Lire un fichier ligne par ligne ====== | + | ====== readfile ====== |
+ | |||
+ | Lire un fichier ligne par ligne | ||
+ | |||
+ | ===== 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> | ||
+ | #variable du fichier | ||
+ | fichier="${repertoire}/fichier" | ||
+ | |||
#initialisation du compteur | #initialisation du compteur | ||
i=0 | i=0 | ||
Ligne 21: | Ligne 28: | ||
exit 0</code> | exit 0</code> | ||
+ | |||
+ | ==== Nota : ==== | ||
+ | |||
+ | "${repertoire}/fichier" = "/chemin/du/fichier" | ||
===== Explication ===== | ===== Explication ===== | ||
Ligne 26: | Ligne 37: | ||
Cette méthode est simple, efficace et __correcte__. | Cette méthode est simple, efficace et __correcte__. | ||
- | Il est nécessaire d'utiliser l'option **-r** de **read**, sinon | + | ==== Commande ==== |
- | les backslashes (**\**) seront interprétés, or nous voulons conserver le contenu | + | |
- | du fichier intact. | + | IFS= read -r |
+ | |||
+ | === Options === | ||
+ | |||
+ | IFS | ||
+ | |||
+ | 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**. | ||
- | De plus, on utilise **IFS=** **read**. | + | read -r |
- | **IFS** est une variable spéciale de votre shell. \\ | + | read avec option -r, sinon les backslashes (**\**) seront interprétés, or nous voulons conserver le contenudu fichier intact. |
- | Avec lui, 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**. | + | |
===== Exemple ===== | ===== Exemple ===== |