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 **
.