Faffing about with stdout, stderr, etc.


Pipe stdout and (additionally) stderr to a command

Some commands write their output to stderr. This might be the case if you’re getting logs from a Docker container and the program inside is writing to stderr.

To pipe both stdout and stderr somewhere else, use one of these:

mycommand |& mysecondcommand

mycommand 2>&1 | mysecondcommand


I am piping a command to ‘grep’ to search its output, but I’m getting the whole output instead of just the lines I want:

  • The regular pipe character just pipes stdout to your next command.
  • Maybe the first command in your pipeline is actually writing to stderr
  • Use the cookbook entry above to additionally pipe stderr to your next command.