मेरे तार फ़ाइल पथ हैं जैसे s/14/11/13/15/n7ce49B_235_25ed2d70.jpg
; मेरे पैटर्न काफी सरल हैं, सभी को पसंद है n7ce49B_.+
।
मैं डेल DL360G7 सर्वर पर डेबियन 6.0.10 केGNU grep 2.6.3
तहत चल रहा हूं (मैं इसे केवल 15k HDDs के साथ इस मशीन को पूर्णता की भावना देने के लिए उल्लेख करता हूं), और यह आदेश: बस पूरा नहीं कर सकता - सर्वर बहुत बुरी तरह से स्वैप करता है। 20k पैटर्न के साथ इसमें 3 घंटे से अधिक समय लगता है।time LC_ALL=C grep -E -f path_to_patterns_file path_to_strings_file
यह मेरे लिए अनुचित है।
टिप्पणी के अनुरोध के अनुसार, फ़ाइल है : फ़ाइल पथ 20k पैटर्न
कोई भी इनपुट लाइनों और पैटर्न की संख्या का परीक्षण और समायोजन कर सकता है:
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 |
grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
grep
।
xxd -p /dev/urandom | fold -sw 100 | head -n 1250 | grep -Ef <(xxd -p /dev/urandom | fold -sw 10 | head -n 20000)
। ऐसा लगता है कि समय regexps संकलन और स्मृति का एक बहुत आवंटित करने में खर्च किया जाता है। इसके -F
बजाय -E
, यह तात्कालिक है।
n7ce49B_.+
बराबर हैn7ce49B_.
90k
, वर्णन में20K
पैटर्न हैं