How do I search for 2 strings (AND operator) ?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How do I search for 2 strings (AND operator) ?
# 8  
Old 11-02-2005
For your requirements, this code will do the job.
Code:
for i in $(grep -l string1 /path/to/files/*); do
grep -l string2 $i
done

# 9  
Old 11-17-2005
Testing Jims Command.

To test Jims command this is what I did.

File 1: Created with "char1"
File 2: Created with "char2"
File 3: Created with "char1" & "char2" on the same line.
File 4: Created with "char1" & "char2" on 2 different lines.

Jims command finds file 3 only. It does not find File 4 which is also needed.
# 10  
Old 11-17-2005
How about:
find /path -name \*.lis -exec grep "string1" -l {} \; | xargs grep -l "string2"

Note we are adding -l to both greps (lower case letter l). And we are adding the xargs.
# 11  
Old 11-19-2005
Use egrep
I know this one is a OR operator: egrep " string1 | string2 " file
I know there is AND operator with egrep.
Think it is this one, but I can't be sure. Check out the man page

egrep " string1 + string2 " file
# 12  
Old 11-20-2005
Did you check my code?
Code:
for i in $(grep -l string1 /path/to/files/*); do
grep -l string2 $i
done

I believe this will do the job.
# 13  
Old 11-20-2005
Word1 must come first
Code:
egrep "word1.*word2" files

Non order specific
Code:
egrep "word1.*word2|word2.*word1" files

# 14  
Old 06-30-2009
To search several string patterns in a set of files, just combine the grep and xargs comands. This way, you can simulate an AND operator for the grep command:

grep -rl PATTER1 * | xargs grep -l PATTERN2 | xargs grep -l PATTERN3

... and so on

Last edited by merchant; 06-30-2009 at 09:57 PM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help to search strings every 15 minutes

I have written a script which will search logfiles directory particular two strings and send a message to user to kill the process id if string found every 15 minutes Note::dont have cron tab access(Auto run every 15 minute) oS--AIX Please add script search the PID into logfile "My PID is:... (5 Replies)
Discussion started by: sri1999
5 Replies

2. UNIX for Dummies Questions & Answers

How to search and count strings?

Hi, Is there a command to do a sensitive/in-sensitive search for a string on a line and print how many times that string appears? For example, if I have a line of text below: dog cat rat apple banana dog lion tiger dog Is there a command to search for dog that will print out 3 as a... (7 Replies)
Discussion started by: newbie_01
7 Replies

3. Shell Programming and Scripting

Search between two search strings and print the value

Based on the forums i have tried with grep command but i am unable to get the required output. search this value /*------ If that is found then search for temp_vul and print and also search until /*------- and print new_vul Input file contains: ... (5 Replies)
Discussion started by: onesuri
5 Replies

4. Shell Programming and Scripting

how to avoid 'unexpected operator' error when comparing 2 strings

this is my file: #!/bin/sh a=`cat /home/$USER/Desktop/lol` c=`cat /home/$USER/Desktop/lol1` if ; then echo "$a = $c" else echo "They are not equal" fi The lol file contains 1aa and the lol1 file contains 1aa as well. Unfortunately the output is Even when I put -eq instead of == I get ... (9 Replies)
Discussion started by: hakermania
9 Replies

5. Shell Programming and Scripting

Search between 2 strings

Guys any pointers on how to search between 2 sets date strings with time in the below file example :- 02-Feb-2010 23:12:09 GMT event_type::event_details_are_like_this 02-Feb-2010 09:10:29 GMT event_type::event_details_are_like_this 03-Feb-2010 11:12:19 GMT... (3 Replies)
Discussion started by: lavascript
3 Replies

6. Shell Programming and Scripting

Commang to search two strings in vi

Hi All, Could you help me to get the command to search two different strings in a file using vi as editor. I know that we use /StringToSearch for searching a string, but i want a command to search two strings. Eg. In FileOne i want to search the occurence of StringOne or StringTwo at a time.... (6 Replies)
Discussion started by: girish.raos
6 Replies

7. Shell Programming and Scripting

how to search with 2 strings.

Hi, i have a file a.txt like -------------------------------- col1|col2|col3 data1|data2|data3 other1|other2|other3 -------------------------------- i need to search 2 strings(data in a.txt file is case sesnsitive), suppose data1 and data2. If these 2 strings found then only i need... (2 Replies)
Discussion started by: syamkp
2 Replies

8. UNIX for Dummies Questions & Answers

search a logfile for strings

Hi experts.. I am trying to write a shell script which will scan a log file for three strings ie success image1, success image2, success image3. My shell is tcsh If all the 3 strings are found then insert the 3 strings to a file1 and send mail to developers with file1 If all 3 are note... (0 Replies)
Discussion started by: amitrajvarma
0 Replies

9. Shell Programming and Scripting

Search between strings with an OR

Hi have Input in this way KEY AAAA BBBB END1 KEY AAAA BBBB END2 KEY AAAA BBBB END3 I need to find any thing matching in between KEY And ending with "END1|END2|END3" This didnot work awk '/KEY/,/END1|END2|END3/' (3 Replies)
Discussion started by: pbsrinivas
3 Replies

10. UNIX for Dummies Questions & Answers

Search for strings

I am trying to replace the word ACTIVE with 2002 in a file and I am getting the following error. Does anyone know what this means? $ sed "s/ACTIVE/2002" mydata.txt > yourdata.txt sed: 0602-404 Function s/ACTIVE/2002 cannot be parsed. (5 Replies)
Discussion started by: lesstjm
5 Replies
Login or Register to Ask a Question