• # Re: Pipe sur stderr

    Posté par  . Évalué à 1.

    On peut également faire:

    cmd1 2>/dev/stdout | cmd2

    dans mon cas c'etait:

    X -version 2>/dev/stdout | grep "XFree86 Version" | sed -e 's/XFree86 Version //' | cut -d" " -f1

    X -version sort sur stderr au lieu de stdout, allez donc savoir pourquoi !
    • [^] # Re: Pipe sur stderr

      Posté par  . Évalué à 1.

      Certainement, mais il me semble que cette commande va prendre en compte à la fois la sortie standard et l'erreur standard, si la commande en question écrit sur les 2.

      Pour éviter ca, on pourrait peut-être passer par l'entree standard ! héhé :->
      cmd1 2>/dev/stdin | cmd2
      mais il faudrait trouver quand cmd1 a terminé de s'exécuter, dans l'esprit :
      (cmd1;echo EOF) > /dev/stdin | cmd2
      Et on touche pas au clavier !

      Non sérieusement, voici comment faire : il faut inverser stderr et stdout (avec une variable temporaire, attention à l'ordre des redirections), puis piper tranquilement :
      cmd1 3>&1 1>&2 2>&3 | cmd2
      (trouvé sur http://www.cpqlinux.com/redirect.html(...) )

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.