我有一个字符串列表,对于每个字符串,我想检查它是否出现在一个大的源代码目录中。
我来到了一个 GNU grep 解决方案,它给了我我想要的:
for key in $(cat /tmp/listOfKeys.txt); do
if [ "$(grep -rio -m 1 "$key" . | wc -l)" = "0" ]; then
echo "$key has no occurence";
fi
done
Run Code Online (Sandbox Code Playgroud)
但是,它根本没有效率,因为它总是 grep 目录中的每个文件,即使它很早就找到了匹配项。由于要查找的键很多,而且要搜索的文件也很多,因此无法按原样使用。
您知道一种使用“标准”unix 工具有效执行此操作的方法吗?