Piping Commands

Piping Commands

The UNIX operating system has been designed to be modular. Instead of providing commands to do everything the user is likely to want to do, the UNIX philosophy is to use the existing primitive commands to build up a new command. This is accomplished by allowing the output from one command to be piped to the input of the next command.

The general form of a piped command line is:

command | command

We have already met a piped command when printing a file:


Type: cat filename | lp

Here the output of the cat command is piped to the lp command.

The cat command shows only the contents of a file which, if sent to a printer, might need header information or a page number. To produce a listing of a file, on a printer, with say the filename at the top of every page:

Some Examples Of Piped Commands

To obtain an alphabetised list of the users currently logged in to the system:

Type: who | sort

To obtain the number of logged in users:

Type: who | wc -l

To see the number of files in your current working directory:

Type: ls | wc -w

To filter out the redundant information contained in the file /etc/passwd and display only the lines that contain a specified string use the grep ("get regular expression and print") command. For example:

Type: grep "Mobbs" /etc/passwd

To list all the text files in your current directory:

Type: file * | grep text

Source: http://www.le.ac.uk/oerresources/bdra/unix/page_55.htm