Depois de algumas tentativas & erro eu achei awk sendo mais apropriado para fazer tal filtragem
eu cheguei a esta solução de uma linha:
find $PWD -name "*.mp4" | awk -F- '{ if ( substr($3,1,2) <= "17" && substr($3,1,2) >= "08") print $0 }'
mas deixe-me explicar:
find $PWD -name "*.mp4" ## find all videos and print full path
awk -F- ## tels awk that the separator is dash character : -
agora meu exemplo de caminho de saída será dividido em 4 "colunas" (contagem de 3 traços) e cada coluna é acessada através de $ n
Portanto, a coluna interessante aqui é $ 3 porque contém o tempo
$0 = /data/20171229AM/sricam-20171229-070814-1514520494.mp4
$1 = /data/20171229AM/sricam
$2 = 20171229
$3 = 070814
$4 = 514520494.mp4
temos que fazer uma filtragem de condição: se a hora estiver entre 08 e 17, imprima a linha.
substr($3,1,2) ## take the two first chars from $3 column starting at position 1
substr($3,1,2) <= "17"
Note the quotes around 17 , this means "convert to string" -- without it, the two conditions in the if statement would never be true
print $0 ## print the whole line (without the splitting)
Obrigado a todos por todas as suas sugestões.