की तरह फ़ाइल नाम कुछ इस पर देर से एक सा में आ रहा है दिखाने के लिए विकल्प एच जोड़ना होगा, एक ऐसी ही समस्या थी और था करने में सक्षम उपयोग करने के लिए esolve;
zcat -r /some/dir/here | grep "blah"
जैसा यहां विस्तृत किया गया है;
http://manpages.ubuntu.com/manpages/quantal/man1/gzip.1.html
बहरहाल, यह, कि परिणाम से मेल नहीं खाते मूल फ़ाइल प्रदर्शित नहीं करता है बजाय दिखा "(मानक इनपुट)" के रूप में यह एक पाइप से में आ रहा है। zcat किसी भी नाम को आउटपुट करने का समर्थन नहीं करता है।
प्रदर्शन के संदर्भ में, यह हमें मिला है;
$ 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
आप देख सकते हैं, find|zcat
पद्धति का उपयोग करके zcat -r
का उपयोग करते समय भी फ़ाइलों की एक छोटी मात्रा के साथ काम की तुलना में काफी धीमी है। मैं फ़ाइल नाम को ज़ेडैट आउटपुट बनाने में भी असमर्थ था (-v
का उपयोग करके फ़ाइल नाम को स्पष्ट रूप से आउटपुट करेगा, लेकिन प्रत्येक पंक्ति पर नहीं)। ऐसा प्रतीत होता है कि वर्तमान में कोई उपकरण नहीं है जो grep (यानी -H
विकल्प) के साथ गति और नाम स्थिरता दोनों प्रदान करेगा।
यदि आपको उस फ़ाइल के नाम की पहचान करने की आवश्यकता है जो परिणाम संबंधित है, तो आपको या तो अपना स्वयं का टूल लिखना होगा (पाइथन कोड की 50 लाइनों में किया जा सकता है) या धीमी विधि का उपयोग करें। यदि आपको नाम की पहचान करने की आवश्यकता नहीं है, तो zcat -r
का उपयोग करें।
आशा इस
FWIW में कौन सा फ़ाइल मिला, मेरा zgrep समर्थन नहीं करता -R – ZombieDev
@Ned Batchelder, दिशा देने के लिए धन्यवाद। लेकिन मेरे लिए zgrep विकल्प "पैटर्न" फ़ाइलों का पालन करने के बाद – hiren
'zgrep -R --include = \ *। Gz-h" पैटर्न "zsh – blacktooth