kommend in einem wenig spät auf diesem, hatte ein ähnliches Problem hinzu und war fähig zu r esolve Verwendung;
zcat -r /some/dir/here | grep "blah"
Wie hier beschrieben;
http://manpages.ubuntu.com/manpages/quantal/man1/gzip.1.html
Dies ist jedoch nicht die ursprüngliche Datei nicht zeigen, dass das Ergebnis von angepasst, anstatt „(Standard-Eingabe)“ zeigt, wie sie in aus einem Rohr kommen. zcat scheint auch die Ausgabe eines Namens nicht zu unterstützen.
In Bezug auf die Leistung, das ist, was wir haben;
$ 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
Wie Sie sehen können, mit der find|zcat
Methode ist deutlich langsamer als zcat -r
verwenden, wenn auch nur ein kleines Volumen von Dateien handelt. Ich konnte auch nicht zcat Ausgabe der Dateiname machen (mit -v
wird offenbar den Dateinamen ausgeben, aber nicht auf jeder einzelnen Zeile). Es scheint, dass es derzeit kein Werkzeug gibt, das sowohl die Geschwindigkeit als auch die Namenskonsistenz mit grep bereitstellt (d. H. Die -H
Option).
Wenn Sie den Namen der Datei identifizieren müssen, zu der das Ergebnis gehört, müssen Sie entweder ein eigenes Werkzeug schreiben (in 50 Zeilen Python-Code) oder die langsamere Methode verwenden. Wenn Sie den Namen nicht identifizieren müssen, verwenden Sie zcat -r
.
this helps
FWIW gefunden hat, unterstützt mein zgrep nicht -R – ZombieDev
@Ned Batchelder, Danke für die Angabe einer Richtung. Aber für mich folgende bearbeitet zgrep Optionen "Muster" -Dateien – hiren
'zgrep -R --include = \ *. Gz -H" Muster "auf zsh – blacktooth