Pipes and Filters
We’ve seen how to redirect input from a file and
output to a file. You can also connect two
programs together so that the output from one
program becomes the input of the next program. Two or more programs
connected in this way form a
pipe.
To make a pipe, put a vertical bar (|
) on the
command line between two commands. When a pipe is set up between two
commands, the standard output of the command to the left of the pipe
symbol becomes the standard input of the command to the right of the
pipe symbol. Any two commands can form a pipe as long as the first
program writes to standard output and the second program reads from
standard input.
When a program takes its input from another program, performs some operation on that input, and writes the result to the standard output (which may be piped to yet another program), it is referred to as a filter. A common use of filters is to modify output. Just as a common filter culls unwanted items, Unix filters can restructure output.
Most Unix programs can be used to form pipes. Some programs that are commonly used as filters are described in the next sections. Note that these programs aren’t used only as filters or parts of pipes. They’re also useful on their own.
grep
The grep
program searches the contents of files for lines that have a certain
pattern. The syntax is:
grep "pattern" file(s)
The name “grep” is derived from the
ed
(a Unix line editor) command
g/
re/p
, which means
"globally search for a
regular expression ...
Get Learning Unix for Mac OS X Panther now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.