Search for Files that DONT contain a string


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Search for Files that DONT contain a string
# 1  
Old 05-04-2004
Data Search for Files that DONT contain a string

How do I search for files that dont contain a certain string? I am currently trying

find ./logs -size +1c -exec grep -l 'Process Complete' {} \; -exec ls -l {} \; >
$TOD

Which gives me files that are reater han 0 file size and contain the string 'Process complete' but I want files that DONT contain Process Complete. If i use the -v option for grep it still doesnt work!
# 2  
Old 05-04-2004
Try
Code:
find ./logs -size +1c  > t._tmp
while read filename
do
     grep -q "Process Complete" $filename
     if [ $? -ne 0 ] ; then
             echo $filename
     fi
done < t._tmp
rm -f t_tmp

# 3  
Old 05-04-2004
Re: Search for Files that DONT contain a string

Quote:
Originally posted by tonydsam
How do I search for files that dont contain a certain string? I am currently trying

find ./logs -size +1c -exec grep -l 'Process Complete' {} \; -exec ls -l {} \; >$TOD

Which gives me files that are reater han 0 file size and contain the string 'Process complete' but I want files that DONT contain Process Complete. If i use the -v option for grep it still doesnt work!
Just negate the condition with a "!"

find ./logs -size +1c ! -exec grep -l 'Process Complete' {} \; -exec ls -l {} \; >$TOD
# 4  
Old 05-05-2004
This doesnt seem to be working as it is still picking up the files with Process Complete in them. I have tried moving the ! around but still no joy. 'Process Complete' should only be on the last line of the file if that helps.

Last edited by tonydsam; 05-05-2004 at 04:26 AM..
# 5  
Old 05-05-2004
I think that your problem is that you are using find to grep on the ./logs directory itself and not just on the files in that directory. You need to restrict the find to only grep within plain files.

Lets test this theory, using some test files...

$ mkdir logs
$ echo 'Process Complete' > logs/log1
$ echo 'otherwise' > logs/log2

...first find files that do contain the string...

$ find ./logs -size +1c -exec grep -q 'Process Complete' {} \; -print
./logs/log1

...as expected. Now find files that do NOT contain the string...

$ find ./logs -size +1c ! -exec grep -q 'Process Complete' {} \; -print
./logs
./logs/log2

...woah! What's that "./logs" thing doing there?! If I was using "-exec ls -l {} \;" then it would return every file in the directory! Better restrict the find to plain files...

$ find ./logs -type f -size +1c ! -exec grep -q 'Process Complete' {} \; -print
./logs/log2

...OK!
# 6  
Old 05-05-2004
Thank you, this does seem to work but I get an error with the -q option so I have changed it to -l, what should it do though ?


Last edited by tonydsam; 05-05-2004 at 11:23 AM..
# 7  
Old 05-05-2004
What kind of grep does not have the -q option?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find file dont have that string

I have 13 text files and almost all of them contain the same string. but some file has diffrent string inside. I want to send that file which has a diffrent string inside (11 Replies)
Discussion started by: Sagar Singh
11 Replies

2. Shell Programming and Scripting

Search string within a file and list common words from the line having the search string

Hi, Need your help for this scripting issue I have. I am not really good at this, so seeking your help. I have a file looking similar to this: Hello, i am human and name=ABCD. How are you? Hello, i am human and name=PQRS. I am good. Hello, i am human and name=ABCD. Good bye. Hello, i... (12 Replies)
Discussion started by: royzlife
12 Replies

3. UNIX for Advanced & Expert Users

Recursively search the string from a column in no. of files

i have a file named keyword.csv(contains around 8k records) which contains a no. of columns. The 5th column contains all the keywords. I want to recursively search these keywords in all .pl files(around 1k) and display the filename....Afterthat i will use the filename and some of the column from... (3 Replies)
Discussion started by: millan
3 Replies

4. Shell Programming and Scripting

Search several string and convert into a single line for each search string using awk command AIX?.

I need to search the file using strings "Request Type" , " Request Method" , "Response Type" and by using result set find the xml tags and convert into a single line?. below are the scenarios. Cat test Nov 10, 2012 5:17:53 AM INFO: Request Type Line 1.... (5 Replies)
Discussion started by: laknar
5 Replies

5. Shell Programming and Scripting

Help with search string between two files

Hi, Basically i want to search for a string in file two based on the input file one and if it matches get the nextline and print the value of the field name. cat one abc xyz defcat two <src> <name="path/to/abc" test="value_version"> <new name="Y2" > </src> <src> <name="path/to/xyz"... (5 Replies)
Discussion started by: greet_sed
5 Replies

6. Shell Programming and Scripting

Search and replace string in files

I'm trying to remove the following string from several files. <img heigth="1" width="1" border="0" src="http://myteenmovies.net/t.php?id=5540372">I'm using the following script #!/bin/bash # This script will search and replace all regular files for a string # supplied by the user and... (1 Reply)
Discussion started by: d13g0sv
1 Replies

7. UNIX for Dummies Questions & Answers

String Search within Text Files

I have many scripts in directories and sub-directories that I would like to search for a specific string. How would I do that? (1 Reply)
Discussion started by: bggibson
1 Replies

8. UNIX for Dummies Questions & Answers

What is the Best way to search files for a string??

I'm looking to seach all the files in a directory and sub-directories looking for a string. When the string is found, I want to display the filename and the entire line of that file that the string was found on. what is the best way to do this ?? I've been playing around with awk, find, and... (15 Replies)
Discussion started by: 35Soinc
15 Replies

9. Shell Programming and Scripting

I dont want to know any search engines

I just want to know where I can download it on this website plz (1 Reply)
Discussion started by: memattmyself
1 Replies

10. UNIX for Dummies Questions & Answers

Search all files for specific string

Hi Friends, How can I search all files in all slices on a unix system for a particular string within the file. e.g search string 'oracle' Thanks (4 Replies)
Discussion started by: sureshy
4 Replies
Login or Register to Ask a Question