2015-09-09 49 views
1

我有下面這個.sh文件,它搜索大量文件中的大量搜索項。但是如果其中一個搜索項目存在於$ file中,我想要在第一個結果中繼續while循環。目前,查詢在所有文件中都是匹配的。第一擊就夠了。如何在第一個GREP結果中繼續循環

我該怎麼做?

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

謝謝。

回答

1

可以成功grep返回後使用break

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 

這將打破內出while循環,只要一個grep成功。

+1

SO EASY ????謝謝。 – cy221

+0

對不起,但它不起作用。 31秒後我只有4次點擊。我期待約900. – cy221

+0

謝謝。但我認爲我必須切換while循環,因爲我的results.txt有很多相同的匹配。 – cy221