Os números vêm das opções -n que você está passando para grep . No entanto, o tubo que você tem é um pouco longo demais para o meu gosto.
Do seu exemplo, parece que você tem uma estrutura de diretório razoavelmente simples. Se você tem o GNU find, use -regex (não tenho certeza que isso é mandado por POSIX):
find /lag/cnnf/ \
-maxdepth 3 \
-regex "abc.*[^0-9]45[^0-9].*db.tar.gz" \
-newer ./start ! -newer ./end >> sample.txt
Caso contrário, assumindo requisitos um pouco mais rigorosos na estrutura de diretórios (ainda caberia no seu exemplo):
find /lag/cnnf/ \
-maxdepth 3 \
-path "*abc*/45/*db.tar.gz" \
-newer ./start ! -newer ./end >> sample.txt
Você também pode querer considerar o uso de expansão de shell - por exemplo, em bash , você precisaria definir a opção de shell globstar e, em seguida, reproduzir com correspondência usando o curinga ** .