Subject: Article from Tech Republic
From: Mike Barsalou (mbarsalou@aidea.org)
Date: Tue Apr 02 2002 - 07:56:38 AKST
Here is a reprint from Tech Republic:
EXPLORING THE GREP COMMAND
Perhaps one of the most useful and powerful tools on any Linux system
is the grep command. The grep command is a tool that searches through
input and reports any matches based on a specified search criteria. The
grep command is used in pipes or directly against either a single file
or multiple files. It can even search recursively through all of the
files in a directory or subdirectory.
Like nearly all Linux commands, grep has a large number of options;
however, only a few are shown. For example, the following command
searches through all files ending in .txt for the string Linux:
# grep -n Linux *.txt
It will display the number of the line in the file on which it was
found, for example:
myfile:8:this has something to do with Linux
It shows that the file myfile.txt contains the string Linux on line
eight. If you want to suppress the output somewhat and obtain only the
filename itself, you would use:
# grep -l Linux *.txt
myfile.txt
Only the filename is returned here. To see how many lines contained the
search string, you would use:
# grep -c Linux *.txt
myfile:1
This shows that Linux was found on one line in the file. You can also
use grep in pipes, like this:
# cat /var/log/messages|grep kernel
This would display any lines containing the string "kernel" from the
output of the cat command. You can use regular expressions with grep as
well:
# grep -E '^Jan.*su\(' /var/log/messages
Jan 1 01:51:11 logan su(pam_unix)[28813]: session opened for user root
by joe(uid=0)
Jan 2 21:26:40 logan su(pam_unix)[28813]: session closed for user root
This tells grep to find any matches in the /var/log/messages file,`
which start with Jan at the beginning of the line, followed by any
number of characters and that also contain su( on the same line.
This archive was generated by hypermail 2a23 : Tue Apr 02 2002 - 07:55:20 AKST