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

Répondre à