如何在第一个 GREP 结果上继续循环

How to continue in loop on first GREP result

我有以下 .sh 文件,它在大量文件中搜索大量搜索项。但是如果 $file 中存在一个搜索项,我想在第一个结果处继续 while 循环。目前,所有文件中的查询都是匹配的。第一击就够了

我该怎么做?

while read file
do
    echo $file
    grep -o -f searchItems.txt "$file" >> results.txt
done < filelist.txt

谢谢。

成功后可以使用break grep return:

while read -r key; do
   while read -r actualFile; do
     echo "searching for $key in $actualFile"
     grep -o "$key" "$actualFile" >> messageKeysInUse.txt && break
   done < filelist.txt
done < allMessageKeysFromDB.txt

一旦 grep 成功,它将跳出内部 while 循环。