Vamos rever este comando:
echo sed -n '/^13:40:43$/,/^13:41:43$/ p' somelogfile.log | wc -l
-
Considere o que o echo faz e o que passa pelo canal para wc (apenas tente sem wc ). Isso explica porque você sempre recebe um 1 .
-
Os regexes que você escreveu estão bloqueados para o início ^ e terminam $ da linha, mas é claro que esses carimbos de data e hora não são a única coisa na linha, portanto você deve remover as âncoras. / p>
-
A condição final procura um registro de data e hora que não esteja presente em sua amostra, portanto, o intervalo de correspondência nunca terminará, imprimindo tudo a partir da primeira correspondência.
Algo parecido com isso pode fazer aproximadamente o que você pede (exibindo 3 com o arquivo de entrada mostrado atualmente na pergunta)
sed -ne '/13:40:47/,/13:41:48/p' somelogfile.log | wc -l