तारों के लिए कोड खोजते समय, मैं लगातार समस्या में भाग लेता हूं कि मुझे अर्थहीन, संदर्भ-कम परिणाम मिलते हैं। उदाहरण के लिए, यदि फ़ंक्शन कॉल को 3 लाइनों में विभाजित किया गया है, और मैं पैरामीटर के नाम की खोज करता हूं, तो मुझे एक लाइन पर पैरामीटर मिलता है, न कि फ़ंक्शन का नाम।मैं पूरी तरह से संभवतः लिपटे, कोड की रेखाओं के लिए कैसे grep कर सकता हूँ?
उदाहरण के लिए, एक फ़ाइल MY_CONSTANT के लिए grepping एक पंक्ति है कि इस तरह देखा वापसी होगी
...
someFunctionCall ("test",
MY_CONSTANT,
(some *really) - long/expression);
युक्त:
MY_CONSTANT,
इसी तरह एक टिप्पणी ब्लॉक में:
/////////////////////////////////////////
// FIXMESOON, do..while is the wrong choice here, because
// it makes the wrong thing happen
/////////////////////////////////////////
फिक्समेसन के लिए ग्रेपिंग बहुत निराशाजनक उत्तर देता है:
// FIXMESOON, do..while is the wrong choice here, because
जब हजारों हिट होते हैं, तो सिंगल लाइन परिणाम थोड़ा अर्थहीन होते हैं। मैं क्या करना चाहता हूं कि grep को स्रोत कोड लाइनों के प्रारंभ और रोक बिंदुओं के बारे में पता होना चाहिए, जैसा कि इसे सरल मानते हैं ";" क्योंकि लाइन विभाजक एक अच्छी शुरुआत होगी।
बोनस अंक यदि आप टिप्पणी के अंदर है तो आप इसे संपूर्ण टिप्पणी ब्लॉक वापस कर सकते हैं।
मुझे पता है कि आप अकेले grep के साथ ऐसा नहीं कर सकते हैं। मैं grep को संदर्भ की पंक्तियों की एक निश्चित संख्या वापस करने के विकल्प के बारे में भी जानता हूं। लिनक्स के तहत कैसे पूरा किया जाए इस पर कोई सुझाव? एफवाईआई मेरी पसंदीदा भाषा सी और पर्ल हैं।
मुझे यकीन है कि मैं कुछ लिख सकता हूं, लेकिन मुझे पता है कि किसी ने पहले से ही यह किया होगा।
धन्यवाद!
पता नहीं सब गाजर को बदलने के लिए है, लेकिन यह एक अच्छा सवाल है! – mpen
एक अच्छे समाधान के बदले, आप संदर्भ –