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

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/