[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: redirection d'erreurs?



On Tue, Oct 08, 2002 at 01:34:40PM +0200, Remi Suinot wrote:
> Bonjour;
> 
> Je suis confronté à un petit problème:
> j'ai un répertoire, dont je scanne le contenu avec dpkg-scanpackages,
> mais je n'arrive pas à rediriger la sortie de celui-ci pour avoir uniquement
> le nom des paquets en double. Exemple:
> 
> # dpkg-scanpackages essai overide > essai_double.txt     


man bash

Un programme a essentiellement 3 "streams": stdin (entrée
clavier/pipe) stdout (sortie écran/pipe) stderr

stderr récupère typiquement les erreurs/warnings etc. Ça
permet de faire un pipe avec des "erreurs" sans embeter les
programmes qui suivent, genre:

find . -name "*" | xargs grep truc > sortie

grep va se plaindre à chaque fois que find envoie un
répertoire. Ça n'est pas en soit un problème (c'est pas
fatal), donc on prévient sur stderr sans mettre les messages
d'erreur dans "sortie".

  >  ne redirige que stdout

Pour rediriger stderr, il faut copier le decripteur 2 sur le
decripteur 1 ce qui se fait en rajoutant 2>&1 à la fin, si
je me souviens bien:

# dpkg-scanpackages essai overide > essai_double.txt  2>&1

(Ça "mixe" stdout et stderr)

Je crois qu'on peut aussi ne rediriger que stderr:

# dpkg-scanpackages essai overide 2> essai_double.txt

Mais je suis plus sûr, faut relire la page man de bash

HTH,
Y.





Reply to: