|
|
|
|
||||||
| fr.comp.os.unix Système UNIX. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
j'ai ceci: for FIC in `ls /temp/toto*|grep -v old 2>>/dev/null` do echo "$FIC" done même avec la redirection de l'erreur, j'ai quand même l'erreur suivant : ls : 0653-341 Le fichier /temp/toto* n'existe pas. Comment faire pour ne pas avoir de message d'erreur ? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On 28 Feb 2006 02:57:06 -0800, ozzii wrote:
> Bonjour, > > j'ai ceci: > for FIC in `ls /temp/toto*|grep -v old 2>>/dev/null` > do > echo "$FIC" > done > > même avec la redirection de l'erreur, j'ai quand même l'erreur > suivant : > ls : 0653-341 Le fichier /temp/toto* n'existe pas. > > Comment faire pour ne pas avoir de message d'erreur ? > set -f # on veut que le shell expande /temp/toto*, mais pas # qu'il expande chaque mot resultat du splitting de `...` IFS=' ' # le splitting de `...` doit etre fait sur les sauts de ligne for FIC in `set +f; ls -d /temp/toto* 2> /dev/null |grep -v old` do printf '%s\n' "$FIC" done (tu redirigeais la sortie d'erreur de grep, pas celle de ls). Mais pourquoi pas: for FIC in /tmp/toto*; do case $FIC in *old*) continue;; esac printf '%s\n' "$FIC" done Avec zsh: print -rl /tmp/toto*~*old* (il faut peut-etre l'option extendedglob). -- Stephane |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Stephane Chazelas wrote in message
<slrne08efj.nsr.stephane_chazelas@duey.spider.com> : > Avec zsh: > > print -rl /tmp/toto*~*old* /tmp/toto*~*old*(N) pour ne pas avoir d'erreur quand aucun fichier n'est trouvé. > (il faut peut-etre l'option extendedglob). Oui, pour l'opérateur ~. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On Tue, 28 Feb 2006 11:59:16 +0000 (UTC), Nicolas George wrote:
> Stephane Chazelas wrote in message > <slrne08efj.nsr.stephane_chazelas@duey.spider.com> : >> Avec zsh: >> >> print -rl /tmp/toto*~*old* > > /tmp/toto*~*old*(N) pour ne pas avoir d'erreur quand aucun fichier n'est > trouvé. Ben, je prefere avoir une erreur qu'une ligne vide, c'est plus parlant. OK pour: for f in /tmp/toto*~*old*(N); do ou files=(/tmp/toto*~*old*(N)) par contre. >> (il faut peut-etre l'option extendedglob). > > Oui, pour l'opérateur ~. -- Stephane |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
"ozzii" <ozzii23@gmail.com> a écrit sur fr.comp.os.unix :
> Bonjour, > > j'ai ceci: > for FIC in `ls /temp/toto*|grep -v old 2>>/dev/null` > do > echo "$FIC" > done > > même avec la redirection de l'erreur, j'ai quand même l'erreur > suivant : > ls : 0653-341 Le fichier /temp/toto* n'existe pas. > > Comment faire pour ne pas avoir de message d'erreur ? C'est pas le grep qui fait l'erreur, mais le ls. De plus, le ">>" n'a pas d'avantage par rapport au ">" quand c'est pour rediriger vers /dev/null, donc : for FIC in `ls /temp/toto* 2>/dev/null |grep -v old` do echo "$FIC" done |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Etienne de Tocqueville <edt-news-11-2005@galacsys.com> écrit :
>> Comment faire pour ne pas avoir de message d'erreur ? > C'est pas le grep qui fait l'erreur, mais le ls. Non, ce n'est pas ls qui fait l'erreur, c'est le shell qui fait l'expansion des *. > De plus, le ">>" n'a > pas d'avantage par rapport au ">" quand c'est pour rediriger vers > /dev/null, Oui. > donc : > for FIC in `ls /temp/toto* 2>/dev/null |grep -v old` > do > echo "$FIC" > done Non : [gimli] ~> ls /temp/toto* 2>/dev/null zsh: no matches found: /temp/toto* -- DM> J'arrive seulement sur ce groupe de discussion .Que faut il faire ? Rien, il n'y a absolument rien d'autres à faire que taper son message en répondant au groupe, ou pourquoi pas un nouveau message. Rien d'autres -+- E in Guide du Neuneu Usenet - Mais où ce qu'il est-il donc ? -+- |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Stephane Dupille <sdupille@NOSPAM.fr.eu.org> a écrit sur fr.comp.os.unix :
> Non : > [gimli] ~> ls /temp/toto* 2>/dev/null > zsh: no matches found: /temp/toto* Chez moi ça marche ! Cela dit, j'utilise des shell normaux, style "sh" et compatibles ! ;-) |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Désolé pour le délai.
Je test tout à l'heure et je vous dis. P.S. Je suis sous AIX et Solaris. |
|
![]() |
| Outils de la discussion | |
|
|