Grep e contando linhas correspondentes

0

Eu tenho um padrão grep e awk bastante complicado que eu uso para obter relatórios de arquivos de log. Eu trabalho muito e gero uma boa tabela HTML leve que é enviada por e-mail para as pessoas que precisam dela.

Eu gostaria de adicionar, para cada seção (cada grep), uma contagem dos elementos daquela seção.

grep -c não ajuda porque somente retorna uma contagem e eu não quero rodar o grep duas vezes antes de cada arquivo de log para cada seção.

Tudo é executado dentro de um script bash, que também gera o HTML. Eu posso numerar as linhas usando CSS, mas obter a contagem total seria ótimo.

O grep / awk tem várias linhas e o final é o awk que gera o html:

 ...| awk '{print "<tr><td class=\"rightq\"> \
 <a href=\"mailto:[email protected]?Subject=\ 
 "ENVIRON["DAY"]"%20"$1"&Body="ENVIRON["aBODY"]"\">" \
 $1"</a></td><td class=\"rightz\">"$2"</td><td>"$4"</td></tr>"}'
    
por lbutlr 22.02.2017 / 10:22

1 resposta

2

tente

... | awk '{ print "..." ; c++} 
  END { printf "<tr><th>%d lines</th>...</tr>",c}' 

onde

  • c contará o número da linha (suponho que o greping ocorra antes do pipe)
  • END é uma instrução awk especial executada .. no final.
por 22.02.2017 / 11:17

Tags