使用“grep”匹配多个文件中的文本

Rup*_*war 6 linux grep

我有多个文件中的数据。我想在所有文件中找到一些匹配的文本。我可以使用该grep命令吗?如果是,那么如何?

小智 8

只需在命令行上添加所有文件。您可以使用 * 或 ? 或您的外壳允许作为占位符的任何内容。

从联机帮助页:

grep [OPTIONS] PATTERN [FILE...]
Run Code Online (Sandbox Code Playgroud)

意思是:任意数量的文件。如果您想 grep stdin/pipe,则没有。


Mar*_*k D 7

如果您不知道文件的确切位置,但知道它们的名称,则可以使用find

find .  \( -name "filename1" -o -name "filename2" \) -exec grep "<grepstatement>" '{}' \; -print
Run Code Online (Sandbox Code Playgroud)

假设文件在这个目录中的某个地方。


小智 6

grep 'mydata' *
Run Code Online (Sandbox Code Playgroud)

星号*表示您要在多个文件中搜索。如果要搜索多个目录中的多个文件,可以添加-R递归搜索。

grep 'mydata' * -R
Run Code Online (Sandbox Code Playgroud)