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