से एएससीआई स्ट्रिंग का ऑफसेट मैं बाइनरी डेटा फाइलें उत्पन्न कर रहा हूं जो कि एक साथ जुड़े रिकॉर्ड की श्रृंखला हैं। प्रत्येक रिकॉर्ड में बाइनरी डेटा के बाद एक (बाइनरी) शीर्षलेख होता है। द्विआधारी शीर्षलेख के भीतर 80 अक्षरों की एक असीसी स्ट्रिंग है। कहीं भी, फाइलों को लिखने की मेरी प्रक्रिया थोड़ा गड़बड़ हो गई और मैं इस समस्या को डीबग करने की कोशिश कर रहा हूं कि प्रत्येक रिकॉर्ड वास्तव में कितना समय है।"grep" बाइनरी फ़ाइल
This बेहद संबंधित लगता है, लेकिन मुझे perl समझ में नहीं आता है, इसलिए मैं काम करने के लिए स्वीकार्य उत्तर प्राप्त करने में सक्षम नहीं हूं। दूसरा उत्तर bgrep
को इंगित करता है जिसे मैंने संकलित किया है, लेकिन यह चाहता है कि मैं इसे हेक्स स्ट्रिंग खिलाऊं और मैं सिर्फ एक उपकरण चाहता हूं जहां मैं इसे एसीआई स्ट्रिंग दे सकता हूं और इसे बाइनरी डेटा, प्रिंट में मिलेगा स्ट्रिंग और बाइट ऑफसेट जहां यह पाया गया था।
दूसरे शब्दों में, मैं कुछ उपकरण है जो इस तरह काम करता है के लिए देख रहा हूँ:
tool foobar filename
या
tool foobar < filename
और इसके उत्पादन कुछ इस तरह है:
foobar:10
foobar:410
foobar:810
foobar:1210
...
जैसे जिस स्ट्रिंग से मेल खाता था और उस फ़ाइल में एक बाइट ऑफ़सेट था जहां मैच शुरू हुआ था। इस उदाहरण के मामले में, मैं अनुमान लगा सकता हूं कि प्रत्येक रिकॉर्ड 400 बाइट लंबा है।
अन्य बाधाओं: रेगुलर एक्सप्रेशन द्वारा खोज करने के लिए
- क्षमता शांत है, लेकिन मैं इस समस्या के लिए इसकी आवश्यकता नहीं है
- मेरे बाइनरी फ़ाइलें बड़ा (3.5GB), तो मैं करना चाहते हैं यदि संभव हो तो पूरी फ़ाइल को मेमोरी में पढ़ने से बचें।
argv:
http://tjaberg.com/
उत्पादन की तरह लग रहा है! मुझे नहीं पता कि अंग्रेजी व्याकरण की मेरी निपुणता मिट्टी में फिसल गई है। मेरे लिए यह तय करने के लिए धन्यवाद @ केविन – mgilson