grep for multiple patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting grep for multiple patterns
# 1  
Old 12-01-2009
grep for multiple patterns

I have a file with many rows.
I want to grep for multiple patterns from the file.

For eg:
XX=123|YY=222|ZZ=566
AA=123|EE=222|GG=566
FF=123|RR=222|GG=566
DD=123|RR=222|GG=566

I want the lines which has both XX and ZZ.


I know I can get it like this.

grep XX file | grep YY


But I want to know whether I can do this in a single command.
like we do this

grep "XX|YY" file for grep either XX or YY
# 2  
Old 12-01-2009
Code:
$grep -e "XX" -e "YY" filename

# 3  
Old 12-01-2009
Thanks for the quick reply.
Let me try this.
# 4  
Old 12-01-2009
Quote:
Originally Posted by skmdu
Code:
$grep -e "XX" -e "YY" filename

No, this command is wrong:

Code:
$ cat urfile
XX=123|YY=222|ZZ=566
AA=123|EE=222|GG=566
FF=123|RR=222|GG=566
DD=123|RR=222|GG=566
XX=123|YY=222|Zx=566
$ grep -e "XX" -e "YY" urfile
XX=123|YY=222|ZZ=566
XX=123|YY=222|Zx=566

Can use awk:

Code:
 awk -F="|" '/XX/&&/ZZ/' urfile

# 5  
Old 12-01-2009
@rdcwayx,

Can you please what is wrong in that grep command ?

---------- Post updated at 03:10 AM ---------- Previous update was at 03:09 AM ----------

@rdcwayx,

Can you please tell, what is wrong in that grep command ?
# 6  
Old 12-01-2009
Quote:
Originally Posted by rdcwayx
No, this command is wrong:

Code:
$ cat urfile
XX=123|YY=222|ZZ=566
AA=123|EE=222|GG=566
FF=123|RR=222|GG=566
DD=123|RR=222|GG=566
XX=123|YY=222|Zx=566
$ grep -e "XX" -e "YY" urfile
XX=123|YY=222|ZZ=566
XX=123|YY=222|Zx=566

Can use awk:

Code:
 awk -F="|" '/XX/&&/ZZ/' urfile


btw, I expect the same result.

XX=123|YY=222|ZZ=566
XX=123|YY=222|Zx=566

But I expected some command like yours
awk -F"|" '/XX/&&/ZZ/' urfile

I will try this also.

Thanks
# 7  
Old 12-01-2009
Quote:
Originally Posted by skmdu
@rdcwayx,

Can you please what is wrong in that grep command ?

---------- Post updated at 03:10 AM ---------- Previous update was at 03:09 AM ----------

@rdcwayx,

Can you please tell, what is wrong in that grep command ?
there is nothing technically wrong, just that YY should be ZZ. i think.

---------- Post updated at 04:09 AM ---------- Previous update was at 04:07 AM ----------

shell
Code:
while read -r line
do
    case "$line" in
        *XX*) f=1;;&
        *ZZ*)
            [ "$f" -eq 1 ] && echo $line;f=0;;
    esac
done < "file"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep multiple patterns(file) and replace whole line

I am able to grep multiple patterns which stored in a files. However, how could we replace the whole line with either the pattern or new string? For example: pattern_file: *Info in the () is not part of the pattern file. They are the intended name to replace the whole line after the pattern... (5 Replies)
Discussion started by: wxboo
5 Replies

2. Shell Programming and Scripting

How to use grep with multiple patterns?

I am trying to grep a variable with multiple lines with multiple patterns below is the pattern list in a variable called "grouplst", each pattern is speerated by "|" grouplst="example1|example2|example3|example4|example5|example6|example7" I need to use the patterns above to grep a... (2 Replies)
Discussion started by: ajetangay
2 Replies

3. Shell Programming and Scripting

Grep multiple patterns that contain wildcards

job_count=`grep -e "The job called .* has finished | The job called .* is running" logfile.txt | wc -l` Any idea how to count those 2 patterns so i have a total count of the finished and running jobs from the log file? If i do either of the patterns its works okay but adding them together... (8 Replies)
Discussion started by: finn
8 Replies

4. Shell Programming and Scripting

Grep from multiple patterns multiple file multiple output

Hi, I want to grep multiple patterns from multiple files and save to multiple outputs. As of now its outputting all to the same file when I use this command. Input : 108 files to check for 390 patterns to check for. output I need to 108 files with the searched patterns. Xargs -I {} grep... (3 Replies)
Discussion started by: Diya123
3 Replies

5. Shell Programming and Scripting

grep multiple patterns in number of files

Hi, I want to list the files containing a no of pattern like for single string i can use grep -l "string" * This command will enlist the files containg this string. Similarly i would like to use for multiple string. I like to enlist file names having string1 and string 2 Can... (3 Replies)
Discussion started by: vikash_k
3 Replies

6. Shell Programming and Scripting

grep multiple patterns + the whole word only

Guys, i used egrep "pattern1|pattern2". But the whole word is searched. But i want the output if only the exact word is matched. i.e the output is got evenif a part of the pattern is matched. I tried the -w opion but its showing usage error. Please help me out on this one. please sent me... (2 Replies)
Discussion started by: meheretoknow
2 Replies

7. Shell Programming and Scripting

To grep multiple patterns with space in between them......

Hii... Every One...... I want to grep multiple patterns with space in between them. For eg : I have a file which contains following : red cat every one new one you are an ox take one Now, what I want to do is to grep " you are" , "an ox" and "red cat" from this file. Any help........ (5 Replies)
Discussion started by: prashantshukla
5 Replies

8. Shell Programming and Scripting

Grep for Multiple patterns

Hi All, I have a file. I need to find multiple patterns in a row and need those rows to divert to new file. I tried using grep -e / -E / -F options as given in man. But its not working. ==> cat testgrep.txt william,fernandes,xxxxx mark,morsov,yyyy yy=,xx= yyyy=,xxxx== ==>... (7 Replies)
Discussion started by: WillImm123
7 Replies

9. Shell Programming and Scripting

Grep multiple patterns

Hi, Can we grep multiple patterns in UNIX. for example: cat /x/y/oratab | grep -i "pattern1|pattern2" .... etc I require the syntax for multiple patterns. | is not working as I explained in example. Malay (4 Replies)
Discussion started by: malaymaru
4 Replies

10. UNIX for Dummies Questions & Answers

grep for multiple patterns

I want to get a list of all the files in the current directory that have two patterns. I can do first grep of one pattern and then with the output do the grep of the second pattern. if the output of 1st pattern search results in many files, it is very difficult to do a grep of the 2nd pattern for... (1 Reply)
Discussion started by: tselvanin
1 Replies
Login or Register to Ask a Question