Las respuestas más votadas fallan si un grep no devolvió resultados.
Homer Simpson
Marge Simpson
Bart Simpson
Lisa Simpson
Ned Flanders
Rod Flanders
Todd Flanders
Moe Szyslak
Esta es la forma incorrecta de hacerlo :
wiggums=$(grep -iF "Wiggum" characters.txt);
num_wiggums=$(echo "$wiggums" | wc -l);
echo "There are ${num_wiggums} here!";
Allí nos dirá, hay 1
Wiggum en la lista, incluso si no hay ninguno.
En su lugar, debe hacer una verificación adicional para ver si la variable está vacía (-z
como en "es cero"). Si grep no devolvió nada, la variable estará vacía.
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";