Если вы пытаетесь увидеть, какие строки делают, а какие нет -
while read line # simplistic - see other posts on handling with more finesse
do case "$line" in # replaces grep
*"$yourString"*) echo "found" ;;
*) echo "none" ;;
esac
done < file.txt # no need for cat
Альтернативно,
grep -i '<span>my name is john</span>' file.txt
дает вам все попадания, а
grep -iv '<span>my name is john</span>' file.txt
дает вам все хиты. В противном случае вам, вероятно, следует добавить больше информации в вывод, чтобы она была полезной.