Search all files for two strings
To search the current directory for all files that contain two independent strings, you can use the following terminal command:
grep -lr "common" $(grep -lr "rare" .)
In essence, this is saying “Recursively find all the files in the current directory with the string rare
, and then look through those files to find any with the string common
.
Depending on the directory, you may want to limit the number of directories that grep
has to inspect. For me, that often includes directories like node_modules/
and cache
. Here’s the same command with a few excluded directories:
grep -lr "common" $(grep -lr --exclude-dir=node_modules --exclude-dir=.git --exclude-dir=build --exclude-dir=cache "rare" .)
The order of the strings does matter, but putting the less commonly occurring string second is a little more efficient.
Happy searching!