【发布时间】:2021-09-11 07:15:30
【问题描述】:
我有一些目录和子目录列表,我正在尝试从所有目录和子目录列表中搜索字符串。
我正在使用以下命令来执行此操作。但是当它在第一个搜索文件中找到结果时它会停止。我期望对所有文件执行搜索。请帮助我形成命令。
find dir/ -type f -exec grep -H 'missippi' {} +
例如:-
考虑我有 15 个文件,并且在 10 个文件中有名为“missippi”的字符串。应搜索所有 15 个文件并显示结果 10 个文件名。
【问题讨论】:
-
您搜索的是
string还是missippi?您尝试过的命令应该可以工作。grep -r 'missippi' dir也应该可以工作,因为你似乎有GNU grep -
@Sundeep 我确实搜索过“密西比”
-
您正在运行的命令中没有任何内容会导致它在读取第一个文件后停止。也许找到所有文件的时间比您预期的要长,或者文件在您正在查看的目录下不存在,或者其余文件的
missippippi拼写正确,因此它们不匹配missippi. -
好的,你的命令是正确的,问题是别的,但我们不能告诉你还有什么,因为我们在你的问题中看到的只是你的命令,所以我们所能做的就是提出建议你可以考虑的事情。您是否收到任何错误消息?命令完成后
echo "$?"会产生什么值? -
将
find排除在外——grep -H 'missippi' dir/foo/file1 dir/bar/file2的输出是什么,它们都是您知道包含missippi的dir/下文件的路径?