假设我在包含一堆文件的某个目录中,并且我正在尝试查找包含字符串“string”的文件在其内容中。有办法吗?谢谢。
答案1
简单回答:
grep -l string *
将列出当前目录中包含字符串的所有文件细绳。
如果您想在当前目录和任何子目录中的所有文件中查找字符串,请使用:
grep -rl string .
详细信息:
* 将匹配当前文件夹中的所有内容(以 . 开头的文件除外),理论上它还会匹配目录,尽管这通常并不重要。如果您真的想挑剔,可以像这样使用 find:
find . -type f -maxdepth 1 -exec grep -i string {} /dev/null \;
如果要查看当前文件夹及其子文件夹,请保留 -maxdepth 1,例如:
find . -type f -exec grep -i string {} /dev/null \;
{} 表示匹配的文件名,但要列出文件的名称,您还必须添加至少两个文件名,而提及 /dev/null 即可。您可以根据需要修改它以获得想要的结果。应该为您提供工作的基础。:)
答案2
以下是在当前目录及其所有子目录中执行此操作的一些方法。
如果您想要找到该文本的文件的名称:
find . -type f -exec grep -l 'string' {} \;
如果您只想查看找到文本的行:
find . -type f -exec grep 'string' {} \;
如果您希望查看被搜索的文件的名称,然后查看找到某些内容时的行内容:
find . -type f -print -exec grep 'string' {} \;
当然,这还可以进一步结合......