सबसे सरल grepकोड जो काम करेगा:
grep -xE '([^,]*,){10}[^,]*'
स्पष्टीकरण:
-xयह सुनिश्चित करता है कि पैटर्न पूरे भाग से मेल खाए , बजाय इसके भाग के। यह महत्वपूर्ण है ताकि आप 10 से अधिक कॉमा के साथ लाइनों से मेल न खाएं।
-E "विस्तारित रेगेक्स" का अर्थ है, जो आपके रेगेक्स में कम बैकस्लैश-बचने के लिए बनाता है।
कोष्ठक का उपयोग समूह बनाने के लिए किया जाता है, और {10}बाद में इसका मतलब है कि परांठे के भीतर पैटर्न की एक पंक्ति में ठीक दस मैच होने चाहिए।
[^,]एक वर्ण वर्ग है- उदाहरण के लिए, [c-f]किसी भी एकल वर्ण से मेल खाएगा जो एक c, एक d, eया एक है f, और [^A-Z]किसी भी एकल वर्ण से मेल खाएगा जो एक अपरकेस अक्षर नहीं है। इसलिए [^,]कॉमा को छोड़कर किसी भी एकल वर्ण से मेल खाता है।
*चरित्र वर्ग साधन के बाद "शून्य या इनमें से अधिक।"
तो रेगेक्स भाग का ([^,]*,)अर्थ है "किसी भी वर्ण को छोड़कर कोई भी संख्या (शून्य काल सहित), इसके बाद अल्पविराम" और {10}इनमें से 10 निर्दिष्ट करता है। फिर [^,]*बाकी गैर-अल्पविराम वर्णों को पंक्ति के अंत तक मिलान करने के लिए।
sedयहां होता है) केवल जहां तक एक से अधिक मिलान की तलाश की जाती है, हालांकि यह प्रश्न करता है। आपको इसे बंद नहीं करना चाहिए था।