Ответы с наибольшим количеством голосов потерпели неудачу, если grep не дал результатов.
Homer Simpson
Marge Simpson
Bart Simpson
Lisa Simpson
Ned Flanders
Rod Flanders
Todd Flanders
Moe Szyslak
Это неправильный 1006 * способ сделать это :
wiggums=$(grep -iF "Wiggum" characters.txt);
num_wiggums=$(echo "$wiggums" | wc -l);
echo "There are ${num_wiggums} here!";
Там нам скажут, что в списке есть 1
Виггам , даже если их нет.
Вместо этого вам нужно сделать одну дополнительную проверкучтобы увидеть, является ли переменная пустой (-z
, как в «ноль»).Если grep ничего не возвращал, переменная будет пустой.
matches=$(grep -iF "VanHouten" characters.txt);
if [ -z "$matches" ]; then
num_matches=0;
else
num_matches=$(echo "$matches" | wc -l);
fi
echo "There are ${num_matches} VanHoutens on the list";