Re: [ssfr] Boucle sur les lignes d'un fichier |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
Le 2008-07-17, à 13:16:56 +0200, Philippe Jacquot (philippe.j@xxxxxxxxx) a écrit :
> Lignes : 50
>
> JJL wrote:
>> Re-Salut,
>>
>>
>>> for nom in $(<$1) # ce qui m'intéresse ici
>>>
>> Après réflexion, je pense que ta méthode a un problème sur les lignes
>> avec espace qui seront découpées et donc comptés (au moins) deux fois.
>>
>> jjl@penfret:/tmp$ cat toto
>> abc bed
>> ghi
>> jjl@penfret:/tmp$ for n in $(<toto); do echo $n;done
>> abc
>> bed
>> ghi
>>
>> ++
>> JJL
> De fait, Steve, t'as fait un compteur de mots, pas de lignes. =)
Effectivement, je n'avais pas pensé au cas où une ligne comprenait
plusieurs mots séparés par un espace.
> tahiti:/tmp$ cat ttt
> aze azde azea
> qsd qfds
> fgfg
> prout pouet
> tahiti:/tmp$ s=0; for i in $(<ttt); do s=$((s+1)); echo "$s: $i"; done
> 1: aze
> 2: azde
> 3: azea
> 4: qsd
> 5: qfds
> 6: dgfg
> 7: prout
> 8: pouet
ok.
>
> Pour les lignes, je ferai:
> tahiti:/tmp$ s=0; while read; do s=$((s+1)); echo "$s: $REPLY"; done < ttt
> 1: aze azde azea
> 2: qsd qfds
> 3: dgfg
> 4: prout pouet
>
Pigé.
Merci à vous tous, mon niveau augmente de manière surprenante (!) grâce à vous.
Je continue mon apprentissage (et celui de mon élève...)
--
Steve
---