Um simples one-liner pode ajudá-lo:
perl -nE '$count++ if /192.168.2.16/;END{say $count}' your_file_name_here
Execute este one-liner no prompt de comando.
Isso imprimirá o número de ocorrências de 192.168.2.16
(portanto, duas ocorrências na mesma linha serão contadas duas vezes). Se você quiser apenas contar as linhas em que o endereço ocorreu pelo menos uma vez, use isso:
perl -nE 'if(/192\.168\.2\.16/){$count++;next LINE};END{say $count}' your_file_name_here
Explicação
-
-n
significa aplicar o código fornecido a cada linha do arquivo (tecnicamente, para cada registro conforme definido pelo separador de registro ($/
, que é uma nova linha por padrão). -
-E
significa tratar a próxima string como uma parte do código Perl. -
$count++ if /.../
significa incrementar a variável$count
se a linha atual contiver o endereço IP que você está procurando. -
next LINE
funciona porque a opção-n
agrupa automaticamente seu código em um loop por linha com o rótuloLINE
. -
END{...}
executa o código entre os curlies no final (após a última linha ter sido processada).
Observe que você pode precisar refinar o regex, dependendo do seu caso de uso. Você pode, por exemplo, ancorá-lo para garantir que ele não corresponda a uma sequência aleatória de dígitos e pontos:
/[^0-9.]192\.168\.2\.16[^0-9.]/
Eu sei que o OP está usando o Windows. Para futuros leitores desta questão usando um sistema com um grep
compatível com POSIX, você pode usar:
grep -Fc '192.168.2.16' your_file_name_here
para obter uma contagem das linhas que contêm esse endereço IP.