Bash - 有没有办法在当前目录中搜索字符串(或模式)?

Kai*_*die 1 search bash

可能的重复:
在 linux Bash 中搜索文本模式
:有没有办法在文件目录中搜索特定字符串?

假设我在某个包含一堆文件的目录中,我正在尝试查找在其 content中包含字符串“string”的文件。有没有办法做到这一点?谢谢。

Mat*_*erg 5

简单回答:

grep -l string *
Run Code Online (Sandbox Code Playgroud)

将列出当前目录中包含字符串string 的所有文件。

如果要在当前目录和任何子目录中的所有文件中查找字符串,请使用:

grep -rl string .
Run Code Online (Sandbox Code Playgroud)

详细信息:
* 将匹配当前文件夹中除以 . 开头的文件之外的所有内容,理论上它也会匹配目录,即使它通常无关紧要。如果你真的很挑剔,你可以像这样使用 find :

find . -type f -maxdepth 1 -exec grep -i string {} /dev/null \;
Run Code Online (Sandbox Code Playgroud)

如果要查看当前文件夹和子文件夹,请将 -maxdepth 1 保留为:

find . -type f -exec grep -i string {} /dev/null \;
Run Code Online (Sandbox Code Playgroud)

{} 表示它匹配的文件名,但要列出文件的名称,您必须至少添加两个文件名,并提及 /dev/null 即可。您可以根据需要修改它以获得想要的结果。应该给你一个工作的基础。:)