grep 查找文件内容但返回文件名

grep 查找文件内容但返回文件名

我需要 GREP 语法来完成以下任务(在 LINUX 操作系统中):

查询当前目录中包含字符串的所有文件,但仅列出包含匹配项的文件名。

谢谢!

答案1

您可以使用

grep -rl stringToSearch .

或者

 find . -type f -exec grep -l stringToSearch {} \;

有关grep其他 unix 命令的更多信息,请参阅手册(man

在这种情况man grep

-l, --files-with-matches 抑制正常输出;而是打印每个输入文件的名称,这些文件通常会打印输出。
扫描将在第一次匹配时停止。

显然,作为 bash 命令,如果你的字符串包含特殊字符或空格,你必须(按顺序)对其进行转义和/或用配额括住你的字符串

答案2

“Grep -l” 将为您提供文件名列表。

> echo "hello" > test_file1.list
> echo "hello2.." > test_file2.list
> echo "xyz" > test_file3.list


> grep "hello" test_file*list

test_file1.list:hello
test_file2.list:hello2..


> grep -l "hello" test_file*list
test_file1.list
test_file2.list

相关内容