Pipes Pipes let you use the output of a program as the input of another one Simple pipe with sed This is very simple way to use pipes. ls -l | sed -e "s/[aeio]/u/g" Here, the following happens: first the command ls -l is executed, and it's output, instead of being printed, is sent (piped) to the sed program, which in turn, prints what it has to. Sample: an alternative to ls -l *.txt Probably, this is a more difficult way to do ls -l *.txt, but it is here for illustrating pipes, not for solving such listing dilema. ls -l | grep "\.txt$" Here, the output of the program ls -l is sent to the grep program, which, in turn, will print lines which match the regex "\.txt$". Important notes: - A pipe (|) puts the STDOUT of the command at left side to the STDIN of the command of right side. - If you use multiple pipes, it's just a chain of pipes. First commands output is set to second commands input. Second commands output is set to next commands input and so on. - It's available in all Linux/widows based command interpreter.