On Linux, the normal way to search for some text within a file is to use grep
(Global Regular Expression Print). However, grep
has a limitation: it cannot automatically search folders within the current folder. It can only search within files in the current folder. Today I will show you how to use grep
to search within all files and folders inside a current folder (recursively).
Windows users – despair not. If you find the standard windows search brain-dead or want to automate the task through scripts, you can also use this script. I have already explained various ways to run Linux scripts on windows – use the one that suits you.
We will couple grep
with the find
command, to unleash the power.
Here is what you need to do on Linux (or Cygwin):
find . -type f -exec grep -iH 'dedicated' {} \;
and use this for UnxUtils on Windows:
find . -type f -exec grep -iH "dedicated" \"{}\" ;
This does a case insensitive search for the word ‘dedicated’ in the current folder and all subfolders under it. Change -iH
to -H
for case sensitive search.
You can read the manuals for find
and grep
and change the commands to suit your needs – this method provides a lot of flexibility. Post your precise usage in comments, especially for Windows.
Huh? You mean like `grep -r`??
-R, -r, –recursive
Read all files under each directory, recursively; this is
equivalent to the -d recurse option.