venir un peu en retard sur ce point, avait un problème similaire et était capable de r esolve en utilisant;
zcat -r /some/dir/here | grep "blah"
Comme détaillé ici;
http://manpages.ubuntu.com/manpages/quantal/man1/gzip.1.html
Cependant, cela ne montre pas le fichier original que le résultat correspondait à partir, au lieu montrant « (entrée standard) », comme on reveniez d'une pipe. zcat ne semble pas non plus supporter la sortie d'un nom.
En termes de performance, c'est ce que nous avons obtenu; Comme vous pouvez le voir, en utilisant la méthode find|zcat
est significativement plus lent
$ alias dropcache="sync && echo 3 > /proc/sys/vm/drop_caches"
$ find 09/01 | wc -l
4208
$ du -chs 09/01
24M
$ dropcache; time zcat -r 09/01 > /dev/null
real 0m3.561s
$ dropcache; time find 09/01 -iname '*.txt.gz' -exec zcat '{}' \; > /dev/null
0m38.041s
que d'utiliser zcat -r
lorsqu'ils traitent avec même un petit volume de fichiers. J'ai également été incapable de faire sortir le nom du fichier par zcat (en utilisant -v
, le nom du fichier apparaîtra, mais pas sur chaque ligne). Il semblerait qu'il n'existe actuellement aucun outil qui fournisse à la fois la vitesse et la cohérence du nom avec grep (c'est-à-dire l'option -H
).
Si vous devez identifier le nom du fichier auquel appartient le résultat, vous devez soit écrire votre propre outil (ce qui peut être fait avec 50 lignes de code Python), soit utiliser la méthode la plus lente. Si vous n'avez pas besoin d'identifier le nom, utilisez zcat -r
.
Hope this helps
FWIW, mon zgrep ne supporte pas -R – ZombieDev
@Ned Batchelder, Merci de donner une direction. Mais pour moi suivant travaillé options zgrep "motif" fichiers – hiren
'zgrep -R --include = \ *. Gz -H" motif "' sur zsh – blacktooth