![如何 grep 多个文件中的多个字符串?](https://linux22.com/image/132693/%E5%A6%82%E4%BD%95%20grep%20%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9F.png)
我有一个包含很多字符串的文件。为简单起见,假设它是换行符分隔的,并且每个字符串仅由包含字母数字 ASCII 字符和下划线组成。
现在,我想搜索一个/多个文件中是否出现任何这些字符串。如果它们不是很多,我想我可以将它们连接起来|
并使用一个 grep 。但是——如果有成千上万个呢?
答案1
您可以将文件与许多字符串一起使用,每行一个,作为grep
's-f
选项的参数,该选项告诉它查找指定文件中列出的字符串:
grep -f patterns.txt *
(或任何合适的 glob)。grep
将在给定文件中找到与patterns.txt
.
-F
如果所有字符串都是要匹配的固定字符串,您可能也应该指定。