मेरे पास एक बड़ी फाइल है जिसमें प्रत्येक लाइन पर एक स्ट्रिंग है। यदि फ़ाइल में कोई स्ट्रिंग है, तो मैं जल्दी से निर्धारित करने में सक्षम होना चाहूंगा। आदर्श रूप से, यह एक बाइनरी चॉप टाइप एल्गोरिथ्म का उपयोग करके किया जाएगा।
कुछ Googling ने ध्वज के look
साथ कमांड का खुलासा किया -b
जो बाइनरी खोज एल्गोरिथ्म का उपयोग करके दिए गए उपसर्ग के साथ शुरुआत करने वाले सभी तारों का पता लगाने और आउटपुट करने का वादा करता है। दुर्भाग्य से, यह सही ढंग से काम नहीं करता है और स्ट्रिंग के लिए अशक्त परिणाम देता है जो मुझे पता है कि फ़ाइल में हैं (वे ठीक से बराबर grep
खोज द्वारा वापस आ गए हैं)।
क्या किसी को इस फाइल को कुशलता से खोजने के लिए किसी अन्य उपयोगिता या रणनीति का पता है?
look -b
मेरे लिए एक त्रुटि के साथ विफल रहा File too large
। मुझे लगता है कि यह पूरी बात को स्मृति में पढ़ने की कोशिश कर रहा है।
look
कमांड को सही ढंग से कार्य करने के लिए, क्योंकि लगता है कि लोकेल को अनदेखा किया गया है और सी का उपयोग करता है जैसे हार्डकोडिंग को सॉर्ट करना, मैंने एक बग नहीं खोला है इस भ्रामक व्यवहार के कारण: Bugzilla.kernel.org/show_bug.cgi?id=198011