Shells: What is grep


From my last post [ link ], some of you may noted the use of grep command, I used for process search. grep is a Unix command that allows you to search for a pattern in a list of files [ man Page ]. We are going to test usage with /etc/passwd file.


The passwd file is used for storing encrypted-passwords for the users. Without a passwd file no one can able to login again. So it is better to make a copy of it before we accidentally delete or edit the file, even we are not intended to do so.



#cp /etc/passwd /etc/passwd.bck


Before start, just go and check how passwd file is looks like.


#nano /etc/passwd


First we are going to check, whether there is an entry for root user.


#grep root /etc/passwd


root:x:0:0:root:/root:/bin/bash




check the existence of the user www-data with bin in the same line


#grep www-data /etc/passwd | grep bin
www-data:x:33:33:www-data:/var/www:/bin/sh


What if the list which not having the string www-data, we are using -v for invert search, which is used to filter the result.


#grep bin /etc/passwd | grep -v www-data


You will get a large list which obviously not having the entry www-data.


For higher level usage try the following:


#grep "NAME$" INPUT_FILE > OUTPUT_FILE


example: grep "riazali$" MyDataFile > MyResultsFile

The '$' matches end-of-line.

If you are using a variable, containing the name (in your shell script) , then:



NAME="riazali"
grep "$NAME$" INPUT_FILE > OUTPUT_FILE

0 comments:

Post a Comment