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: