grep para uma string em vários arquivos em tar e print wc -l

0

Eu estou procurando por um comando / script que pode procurar a string dada em vários arquivos em um determinado arquivo tar.gz e dar o wc -l da string junto com o nome do arquivo específico.

Eu tentei o abaixo, mas não me dá nenhuma saída.

tar -zxf /home/myname/April/maillogs.tar.gz
for f in /home/myname/April/*; do
  grep -l "sent" $f |wc -l
done
    
por Ram 03.05.2017 / 12:39

1 resposta

4

Como já mencionado nos comentários, você pode fazer isso em um único comando zgrep :

zgrep -c "sent" /home/myname/April/*.tar.gz

De grep manual:

-c, --count

Suppress normal output; instead print a count of matching lines for each input file. With the -v, --invert-match option (see below), count non-matching lines. (-c is specified by POSIX.)

    
por 03.05.2017 / 12:45

Tags