grep
do -o
não produzirá exatamente a saída que você está procurando, mas deverá ajudá-lo a encontrar o problema. ele apenas mostra a parte correspondente de cada linha e, se várias partes de uma linha corresponderem, ela exibe cada parte separadamente (em linhas separadas):
/data/animals/felines.txt:cat