Match two strings in one line with grep

hearsaxas picture hearsaxas · Dec 20, 2010 · Viewed 397.9k times · Source

I am trying to use grep to match lines that contain two different strings. I have tried the following but this matches lines that contain either string1 or string2 which not what I want.

grep 'string1\|string2' filename

So how do I match with grep only the lines that contain both strings?

Answer

dheerosaur picture dheerosaur · Dec 20, 2010

You can use

grep 'string1' filename | grep 'string2'

Or

grep 'string1.*string2\|string2.*string1' filename