Вот альтернатива, которая может не понравиться некоторым людям. Преобразуйте массив черного списка в строку и посмотрите, совпадает ли строка с удаленным фруктом. Отредактировано для заполнения строк пробелами. Спасибо Скотту за указание на проблему яблока/ананаса.
badlist=" ${blacklist[@]} "
for f in "${list[@]}"
do
if [[ "${badlist/" $f "/}" == "$badlist" ]]
then
echo "$f"
fi
done
Я думаю, что это проще, но не имеет логики &&, которую предпочитают многие.
Очевидным способом было бы:
grep -l 'Line 203:' * | xargs grep 'Line 204:' | wc -l