On Thu, Sep 30, 2004 at 03:25:20PM +0200, Sebastien Cevey wrote: > begin Daniel Cordey quotation of Thu, Sep 30, 2004 at 08:41:55AM +0200: > > Est-ce cela dont tu veux parler ? > > Non, car : > > [EMAIL PROTECTED] foo $ ls -1 > foobar > hello world > [EMAIL PROTECTED] foo $ for file in $(ls *); do echo $file; done > foobar > hello > world > [EMAIL PROTECTED] foo $
On en a parl�. ici, il n'y a pas longtemps :->> ( Le thread au sujet de ``Probl�mes char'' ) dumbword]$ /bin/ls -1 foobar hello word dumbword]$ for file in *;do echo $file;done foobar hello word fonctionne tr�s bien, mais dumbword]$ for file in *;do echo "$file";done foobar hello word avec les guillemets, c'est mieux;) Note que tu peux aussi: # for file in /home/*/.bash_history;do grep -q "su" $file... Les abr�viations sont tr�s souples essayez de trucs comme: $ echo */*/* ou encore $ echo */[a-n]*/* > Ta solution avec le pipe->while permet de contourner le probl�me de la > s�paration par newline vs. espaces, Le probl�me est que ``|while'' g�n�re un fork, cela peut poser un probl�me de r�cup�ration de variable par le p�re, ou simplement de ressources. > tandis qu'un simple for va s�parer les champs par des espaces. Pas du tout, si tu utilise le shell pour trouver les fichiers. > On peut modifier IFS, mais je cherchais une astuce similiaire au while qui > permet de ne pas toucher IFS... Tu peux aussi modifier IFS localement: dumbword]$ set | grep IFS IFS=$' \t\n' dumbword]$ ( IFS=$'\n';for file in $(/bin/ls -1) ;do echo $file;done ) foobar hello word dumbword]$ set | grep IFS IFS=$' \t\n' -- F�lix Hauri - <[EMAIL PROTECTED]> - http://www.f-hauri.ch _______________________________________________ gull mailing list [EMAIL PROTECTED] http://lists.alphanet.ch/mailman/listinfo/gull
