Find

從多個文件中搜尋多個字元串

  • November 26, 2010

如何使用單個命令從多個文件中搜尋多個字元串。可能正在使用 grep 或 find 或者如果在 Linux 或 Solaris 中有任何其他

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

哪裡$BASEDIR是搜尋操作的根。您也可以使用 egrep -R 變得更聰明,但我更喜歡 find 因為我可以通過添加 , 或類似的限定符來更有選擇性地選擇-name foo\*文件-mtime -100

MadHatter 的解決方案肯定會起作用,但是,更簡單的恕我直言的命令是使用 (e)grep 的遞歸標誌。如:

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

取決於是否更方便考慮層次結構中的文件集合,上面,還是使用 shell glob’ing 作為有限集:

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

引用自:https://serverfault.com/questions/206290