从多个文件中search多个string

如何用一个命令从多个文件中search多个string。 可能是使用grepfind,或者在Linux或Solaris中是否有其他的

find $BASEDIR -type f -exec egrep 'string1|string2|string3' $file /dev/null \; 

其中$BASEDIR是search操作的根。 你也可以使用egrep -R来获得聪明,但是我更喜欢find,因为我可以通过添加-name foo\* ,- -mtime -100或者类似的限定词来select文件。

MadHatter的解决scheme肯定会起作用,然而,更简单的命令是使用(e)grep的recursion标志。 如:

 egrep -r 'regex1|regex2' /foo/bar/* 

根据考虑上面的层次结构中的文件集合是更方便的,还是使用shell globing的有限集合:

 egrep 'regex1|regex2' /foo/bar/{file1,file2}