Maybe it's a bit strange – and maybe there are other tools to do this but, well..
I am using the following classic bash command to find all files which contain some string:
find . -type f | xargs grep "something"
I have a great number of files, on multiple depths. first occurrence of "something" is enough for me, but find continues searching, and takes a long time to complete the rest of the files. What I would like to do is something like a "feedback" from grep back to find so that find could stop searching for more files. Is such a thing possible?
Best Answer
Simply keep it within the realm of find:
This is how it works:
The
-exec
will work when the-type f
will be true. And becausegrep
returns0
(success/true) when the-exec grep "something"
has a match, the-quit
will be triggered.