Lecture de fichier avec while do
Résolu/Fermé
A voir également:
- Lecture de fichier avec while do
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Confirmation de lecture whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
6 févr. 2009 à 11:17
6 févr. 2009 à 11:17
Salut,
Essaie comme ça :
Essaie comme ça :
cpt=0 { while read line do grep "$line" > /dev/null if [ "$line" = 0 ] then echo ""$line"" else echo "ok" fi cpt=`expr $cpt + 1` done < cumul.txt };-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
6 févr. 2009 à 13:21
6 févr. 2009 à 13:21
[tmpfs]$ cat fich 2536 8456 7594 8503 6452 2036 [tmpfs]$ cat foo.sh #! /bin/sh #set -xv cpt=0 while read line do grep "0" <<<"$line" > /dev/null if [ "$?" = 0 ] then echo ""$line"" cpt=`expr $cpt + 1` else echo "ok" fi done < fich echo "compteur=$cpt" [tmpfs]$ ./foo.sh ok ok ok 8503 ok 2036 compteur=2 [tmpfs]$;-))
6 févr. 2009 à 11:27
déplacer le compteur n'a rien changé,
maintenant mon fichier fait 3 lignes (il change tout le temps) mais j'ai seulement un affichage qui se produit !
voici le résultat lorsque j'exécute mon programme :
ok
THE FLUX IS OK
alors que ce devrait être :
ok
ok
ok
THE FLUX IS OK
6 févr. 2009 à 11:41
Et puis aussi, tu veux faire quoi exactement avec cette boucle ???
do grep "$line" > /dev/null
if [ "$line" = 0 ]
C'est sensé faire quoi ?
6 févr. 2009 à 11:55
en fait cette boucle fait partie d'un long programme et le compteur est utilisé plus tard et il est très important !
ce que je veux faire c'est contrôler que les nombres sur chaque ligne de mon fichier soient différents de 0, si un nombre est égal à 0 alors il faut le signaler avec un echo qqch sinon ici je suis en mode test donc, je vérifie que ma boucle li bien toutes les lignes de mon fichier et pour ce faire je l'affiche avec un echo.
donc :
je crée une boucle pour lire un fichier,
je li chaque ligne (ce sont des numeric) de mon fichier,
si il y a un élément qui est = à 0,
alors je le signale et j'incrémente un compteur,
sinon j'affiche l'élément que je viens de lire (si il est différent de 0),
j'aimerai donc avoir un résultat avec autant de ligne qu'il n'y a dans mon fichier.
merci pour ta collaboration jipicy