Surprisingly i could not find an answer without sub directories. ie I guess without the -R
option. What I was looking for was to search for text in a directory but avoid searching in subdirectories.
Original post
Tried
grep -nl 'text' /search/path/
But I get the error:
'search/path/ Is a directory`
Whereas if I try with:
grep -rnl 'text' /search/path/` --exclude-dir *
It still searched through subdirectories.
Advertisement
Answer
You can use:
grep 'text' /search/path/* # ^
The *
will expand to all the elements in the directory and the absence of -R
will avoid going deeper into subdirectories.
The drawback of this approach is that it will exclude the hidden files, since .files
do not expand with *
alone. If you also want to grep those, you can use:
grep 'text' /search/path/{*,.*} # ____/
This way you will get all elements matching *
and .*
which is everything.
Finally, if you do not want to get the error message:
search/path/ Is a directory
You can redirect it to /dev/null as follows:
grep 'text' /search/path/{*,.*} 2>/dev/null # _________/