How to use grep


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to use grep
# 1  
Old 08-17-2010
How to use grep

Hi Everyone,

Someone please tell me how to use grep with the -f option.

I need to search for a particular word and display the line that has that word. I need to do this on multiple files so I thought I'll create a file which lists the filenames that need to be searched and have grep go through the list in the file, but its not working.

Lets say I'm looking for the word "ABC" in the file POT1, POT2 & POT3

I would do "grep -w ABC POT1 POT2 POT3" and that would list the lines containing the word ABC.

I also need to list the files that does not contain the search word, do I use -v option?

I will be putting this command into a script so if anyone have a better way of achieving this please do share it with me.

Thank you so much.
# 2  
Old 08-17-2010
Try something like:
Code:
grep 'ABC' POT*

# 3  
Old 08-17-2010
Thanks Franklin52

The problem is that it searches all the files that begin with POT and there are hundreds. I'm only interested in files that were created for the day.
# 4  
Old 08-17-2010
So start by excluding the other cases:
e.g
Code:
grep 'ABC' $(ls -l POT*|grep " Aug 17 "|cut -c 58-80)

# 5  
Old 08-18-2010
Thanks vbe, that command worked. Now, how do I find out which of those files does not contain the search word. I just want to display the file names.

I have been trying the grep command with the -v option but without any success.
# 6  
Old 08-18-2010
-v is for rejecting e.g.
Code:
ps -ef | grep vbe| grep -v grep # Im not interested by the grep process...

In maths you would have:
$(ls -l POT*|grep " Aug 17 "|cut -c 58-80) = A
grep 'ABC' $(ls -l POT*|grep " Aug 17 "|cut -c 58-80) = B

So

A - B = C
C is whats left: What was not retained by grep ...
# 7  
Old 08-18-2010
Quote:
Originally Posted by kumaran21
Thanks Franklin52

The problem is that it searches all the files that begin with POT and there are hundreds. I'm only interested in files that were created for the day.
Code:
find /YOUR_PATH -name "POT*" -type f -mtime -1 -exec grep "ABC" {} \;



---------- Post updated at 11:14 AM ---------- Previous update was at 11:12 AM ----------

Quote:
Originally Posted by kumaran21
Thanks vbe, that command worked. Now, how do I find out which of those files does not contain the search word. I just want to display the file names.

I have been trying the grep command with the -v option but without any success.
use -l option to display filename only.

Code:
grep -v "ABC" -l POT*

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

2. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

3. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

4. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

5. UNIX for Dummies Questions & Answers

Advanced grep'in... grep for data next to static element.

I have a directory I need to grep which consists of numbered sub directories. The sub directory names change daily. A file resides in this main directory that shows which sub directories are FULL backups or INCREMENTAL backups. My goal is to grep the directory for the word "full" and then... (2 Replies)
Discussion started by: SysAdm2
2 Replies

6. UNIX for Dummies Questions & Answers

Difference between grep, egrep & grep -i

Hi All, Please i need to know the difference between grep, egrep & grep -i when used to serach through a file. My platform is SunOS 5.9 & i'm using the korn shell. Regards, - divroro12 - (2 Replies)
Discussion started by: divroro12
2 Replies

7. Shell Programming and Scripting

grep for certain files using a file as input to grep and then move

Hi All, I need to grep few files which has words like the below in the file name , which i want to put it in a file and and grep for the files which contain these names and move it to a new directory , full file name -C20091210.1000-20091210.1100_SMGBSC3:1000... (2 Replies)
Discussion started by: anita07
2 Replies

8. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

9. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

10. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies
Login or Register to Ask a Question