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!