परिचय
लिनक्स ग्रीप आदेश इनपुट फिल्टर गर्ने विधिको रूपमा प्रयोग गरिन्छ।
GREP ग्लोबल नियमित अभिव्यक्ति प्रिन्टरका लागि खडा छ र त्यसैले यसलाई प्रभावकारी रूपमा प्रयोग गर्न, तपाइँसँग नियमित अभिव्यक्तिको बारेमा केही ज्ञान हुनुपर्छ।
यो लेखमा, म तपाईंलाई धेरै उदाहरणहरू देखाउन जाँदैछु जुन ग्रीप आदेश बुझ्न मद्दत गर्नेछ।
01 को 09
कसरी एक स्ट्रिंग को लागि खोज्नुहोस GREP को उपयोग गरेर एक फाइल मा
कल्पना गर्नुहोस् तपाइँसँग निम्न बालबालिकाको पुस्तक शीर्षकका साथ किताबहरु को नाम ले पाठ फाइल छ:
- रोबिन हुड
- लिटिल रेड राइडिंग हुड
- पीटर प्यान
- Goldilocks र तीन बियर
- हिमपात र सातौं बौलाहरू
- Pinnochio
- बिराट हिट
- तीन सानो सुँगुर
- Gruffalo
- चार्ली र चकलेट फैक्टरी
शीर्षकमा "द" शब्दका साथ सबै किताबहरू फेला पार्न तपाईंले निम्न वाक्यसूची प्रयोग गर्नुहुनेछ:
ग्रीक
निम्न परिणामहरू फर्काइने छ:
- Goldilocks र तीन बियर
- हिमपात र सातौं बौलाहरू
- बिराट हिट
- तीन सानो सुँगुर
- Gruffalo
- चार्ली र चकलेट फैक्टरी
प्रत्येक अवस्थामा, "द" शब्द हाइलाइट गरिनेछ।
ध्यान दिनुहोस् कि खोजी कोस संवेदनशील छ त्यसैले यदि शीर्षकको एक "" "को सट्टा" थि "थियो त्यसपछि यो फर्काइएको थिएन।
यो स्थितिलाई बेवास्ता गर्न तपाईले निम्न स्विच थप्न सक्नुहुन्छ:
पुस्तकहरू ग्रीष्म
तपाईं निम्न -i स्विच निम्न रूपमा प्रयोग गर्न सक्नुहुन्छ:
grep -i पुस्तकहरू
02 को 09
एक स्ट्रिंग को लागि एक फाइल मा Wildcards को उपयोग मा खोज्नुहोस
ग्रीक आदेश धेरै शक्तिशाली छ। तपाईं बहुविध ढाँचा मिल्ने प्रविधिहरू फिल्टर परिणामहरूमा बहुविध प्रयोग गर्न सक्नुहुन्छ।
यस उदाहरणमा, म तपाईंलाई कसरी देखाउँछु कि कसरी wildcards को प्रयोग गरेर फाइलमा string को खोजी गर्ने।
कल्पना गर्नुहोस् तपाईंको पास निम्न स्काटिश स्कस्टिश स्थानका नाममा स्थानहरू नाम छ:
एबरडीन
एबरिस्टवेथ
aberlour
inverurie
अहिल्यै
newburgh
नयाँ हिरण
नयाँ ग्यालव
glasgow
एडिनबर्ग
यदि तपाईं नाममा अन्भर भएका सबै स्थानहरू खोज्न चाहनुहुन्छ निम्न वाक्यसूची प्रयोग गर्नुहोस्:
ग्रीप इनभर * ठाउँहरू
ताराङ्कित (*) वाइल्डकार्ड 0 वा धेरैका लागि खडा छ। त्यसैले यदि तपाईंसँग अन्डर भनिन्छ वा अन्डरनेस भनिने ठाउँ छ भने दुवैलाई फर्काइनेछ।
अर्को वाइल्ड कार्ड तपाईले प्रयोग गर्न सक्नुहुन्छ (।)। तपाईं एक अक्षर मेल गर्न यसलाई प्रयोग गर्न सक्नुहुन्छ।
grep inver.r स्थानहरु
उपरोक्त कमानले अन्वरुर र इन्वररी नामका स्थानहरू पत्ता लगाउँदछ तर अन्वेरीरी भेट्टाउन सकेन किनकि एकल अवधिको आधारमा दुई आर को बीच मात्र एक वाइल्डकार्ड हुन सक्छ।
अवधि वाइल्डकार्ड उपयोगी छ तर तपाईले खोज्नु भएको पाठको भागको रूपमा यो समस्या हुन सक्छ।
उदाहरणका लागि डोमेन नामहरूको यस सूचीमा हेर्नुहोस्
- linux.about.com
- psupportsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- dailylinuxuser.com
- google.co.uk
- google.au
- direct.gov.uk
सबै about.com.com खोज्नका लागी तपाई केवल निम्न वाक्य रचना प्रयोग गरेर खोजी गर्न सक्नुहुन्छ:
grep * about * domainnames
यदि सूचीले निम्न नाममा निम्न नाम समावेश गर्दछ भने माथिको आदेश घट्यो।
- dailylinuxuser.com/about.html
यसैले तपाईले निम्न वाक्य सुन्न प्रयास गर्न सक्नुहुनेछ:
grep * about.com domainnames
यसले ठीक काम गर्नेछ: जबसम्म निम्न डोमेनको साथमा डोमेन थिएन:
aboutycom.com
वास्तव मा बारे मा शब्द को बारे मा खोज गर्न को लागि तपाईंलाई निम्न को रूप मा डट देखि बचने को आवश्यकता हुनेछ:
grep * about \ .com डोमेन नामहरू
तपाइँलाई प्रश्न चिन्ह देखाउन अन्तिम वाइल्डकार्ड जो शून्य वा एक वर्णको लागि खडा छ।
उदाहरणका लागि:
grep? ber placenames
माथिल्लो आदेश एबरडीन, एबरस्टिस्ट वा यहाँ सम्म कि बेरिक फर्काउँछ।
03 को 09
स्ट्रिङको लागि खोजी र अन्त्यको लाइनमा ग्रीप प्रयोग गरी खोजी गर्नुहोस्
क्यारेट (^) र डलर ($) प्रतीकले तपाईंलाई ढाँचाहरू खोज्न र रेखाहरूको अन्त्यमा अनुमति दिन्छ।
कल्पना गर्नुहोस् तपाईंकोसँग निम्न टोलीका नाममा फुटबल भनिने फाईल छ:
- ब्ल्याकपूल
- लिभरपूल
- मैनचेस्टर सिटी
- लिसेस्टर सिटी
- म्यान्चेस्टर युनाइटेड
- न्यूकासल संयुक्त
- FC संयुक्त राष्ट्रचेस्टर
यदि तपाइँ सबै टोलीहरू खोज्न चाहन्थे जुन मन्चेस्टरसँग तपाईंले निम्न वाक्य रचनाको प्रयोग गर्नुहुनेछ:
grep ^ मैनचेस्टर टोलीहरू
माथिल्लो कमान्ड मैनचेस्टर सिटी र मैनचेस्टर युनाइटेड फर्किनेछ तर एफसी संयुक्त राष्ट्रचेस्टरको हो।
वैकल्पिक रूपले तपाईले संयुक्त समूहसँग संयुक्त सबै समूहहरू निम्न वाक्य रचनाको प्रयोग गरेर फेला पार्न सक्नुहुनेछ:
ग्रीक युनाइटेड $ टोलीहरू
माथिल्लो कमान्ड मैनचेस्टर युनाइटेड र न्यूकासल संयुक्त राष्ट्र फर्किनेछ तर संयुक्त राष्ट्रचेस्टरको एफसी छैन।
04 को 09
ग्रीप प्रयोग गरी मिलानहरूको संख्या गणना गर्दै
यदि तपाईं वास्तविक रेखाहरू जो ग्रीक प्रयोग गरेर ढाँचासँग मेल गर्न चाहानुहुन्छ तर तपाईं केवल जान्न चाहन्छु कि तपाइँ त्यहाँ निम्न सिन्ट्याक्स कसरी प्रयोग गर्न सक्नुहुन्छ:
grep -c ढाँचा इनपुटफाइल
यदि ढाँचा दोहोर्याएको थियो भने 2 नम्बर फर्काइनेछ।
05 को 09
सबै पत्ता लगाउने जुन ग्रीप प्रयोग गरेर मेल खाँदैन
कल्पना गर्नुहोस् तपाईसँग निम्न सूचीबद्ध देशहरूको नामको नामको सूची छ:
- एबरडीन स्कटल्याण्ड
- glasgow scotland
- लिभरपोल इन्जिन
- कोलोन बे
- लन्डन इन्जिनल्याण्ड
तपाईंले ध्यान पाउनु भएको थियो कि कलविन बेसँग कुनै देशसँग सम्बन्धित छैन।
देशको सबै ठाउँमा खोजी गर्न तपाईले निम्न वाक्य रचना प्रयोग गर्न सक्नुहुनेछ:
ग्रीस भूमि $ स्थानहरू
परिणाम फर्काउने कोलोविन बे बाहेक सबै स्थानहरू हुनेछन्।
यो स्पष्ट रूपमा स्थानहरूमा जुन भूमिमा समाप्त हुन्छ (शायद नै वैज्ञानिक) काम गर्दछ।
तपाईं निम्न वाक्य रचनाको प्रयोग गरेर चयन रद्द गर्न सक्नुहुनेछ:
grep -v जमीन $ स्थानहरू
यसले सबै ठाउँहरू फेला पार्छ जुन भूमिको साथ समाप्त हुँदैन।
06 को 09
कसरी ग्रीप प्रयोग गरेर फाइलहरूमा खाली रेखाहरू फेला पार्नुहोस्
कल्पना गर्नुहोस् कि तपाईंको इनपुट फाइल हो जुन तेस्रो पक्ष अनुप्रयोग द्वारा प्रयोग गरिएको छ जुन फाइल पढ्ने रोक्छ जब यो खाली रेखा निम्नानुसार हुन्छ:
- एबरडीन स्कटल्याण्ड
- इन्वरनेस स्कटल्याण्ड
- लिभरपोल इन्जिन
- colwyn बे वेल्स
जब अनुप्रयोग लिभरपूल पछि लाइनमा पुग्छ यो पढ्ने बन्द हुनेछ अर्थ कोलवाइन बे पूर्ण रूपमा मिस गरिएको छ।
तपाईं निम्न सिंक्याक्समा रिक्त रेखाहरूको खोजी गर्न ग्रीप प्रयोग गर्न सक्नुहुन्छ:
grep ^ $ स्थानहरू
दुर्भाग्यवश यो विशेष गरी उपयोगी छैन किनकी यसले केवल रिक्त रेखाहरू फर्काउँछ।
तपाईले निश्चित रूपमा रिक्त रेखाहरूको संख्या गणना गर्न सक्नु भएको छ कि यो फाइल यो मान्य हो कि यदि फाइल मान्य छ भने:
grep -c ^ $ स्थानहरू
तथापि यो लाइन नम्बरहरू जुन रिक्त लाइन छ भनेर जान्नको लागि उपयोगी हुन्छ ताकि तपाईं तिनीहरूलाई बदल्न सक्नुहुनेछ। तपाईले निम्न आदेशको साथ गर्न सक्नुहुन्छ:
grep -n ^ $ स्थानहरू
07 को 09
अपरकेस वा लोअरकेस क्यारेक्टरहरूको स्ट्राइकहरूको लागि कसरी grep प्रयोग गर्ने खोजी गर्नुहोस्
ग्रीप प्रयोग गरेर तपाइँले फाइलमा कुन रेखाहरू निम्न वाक्य रचनाको प्रयोग गरेर ठूला अक्षरहरू छन् भनेर निर्धारण गर्न सक्नुहुन्छ:
grep '[AZ]' फाइलनाम
वर्ग कोष्ठकहरू [] ले तपाईंलाई वर्णहरूको दायरा निर्धारण गर्न अनुमति दिन्छ। माथिको उदाहरणमा यसले कुनै पनि क्यारेक्टरसँग मेल खान्छ जुन A र Z बीचको छ।
त्यसैले निम्नका वर्ण क्यारेक्टरहरू मेल खाने तपाईले निम्न वाक्य रचना प्रयोग गर्न सक्नुहुनेछ:
grep '[az]' फाइलनाम
यदि तपाईं केवल अक्षरहरू मेल गर्न चाहानुहुन्छ भने अंकंक वा अन्य प्रतीकहरू तपाइँ तपाइँ निम्न वाक्य रचना प्रयोग गर्न सक्नुहुन्छ:
grep '[a-zA-Z]' फाइलनाम
तपाईं निम्न रूपमा नम्बरहरू गर्न सक्नुहुन्छ निम्नानुसार:
grep '[0-9]' फाइलनाम
08 को 09
ग्रीष्मको प्रयोग गरेर दोहोर्याउने पैटर्नहरूको खोजी गर्दै
तपाइँले दोहोर्याउने ढाँचा खोजी गर्न कर्ली कोष्ठक {} प्रयोग गर्न सक्नुहुनेछ।
कल्पना गर्नुहोस् तपाईंकोसँग फोन नम्बरहरूसँग फाइल छ निम्न रूपमा:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
तपाईं नम्बरको पहिलो भाग तीन अंकको हुनु पर्दछ र तपाइँले यो ढाँचा मेल खाँदैन जुन रेखाहरू फेला पार्न चाहानुहुन्छ।
अघिल्लो उदाहरणबाट तपाइँ थाहा पाउनुहुन्छ कि [0-9] सबै फाइल फाइलमा फर्काउँछ।
यस उदाहरणमा हामी रेखाहरू जुन हाइफनको पछि लागेका तीन संख्याहरूसँग सुरु गर्न चाहनुहुन्छ (-)। तपाईले निम्न वाक्य रचनाको साथ गर्न सक्नुहुन्छ:
ग्रीप "^ [0-9] [0-9] [0-9] -" नम्बरहरू
जस्तै हामीले अघिल्लो उदाहरणहरुबाट थाहा पाईएको क्यारेट (^) को अर्थ हो कि रेखा निम्न ढाँचाको साथ सुरु हुनु पर्छ।
[0-9] 0 र 9 बीचको कुनै पनि नम्बर खोजी गर्नेछ। यसमा तीन पटक तीनवटा सङ्ख्याहरू समावेश गर्दछ। अन्ततः त्यहाँ हाइफन तीनवटा सङ्ख्याहरू सफल हुन अस्वीकार गर्न हाइफन छ।
घुमाई कोष्ठक प्रयोग गरेर तपाईले यो खोजीलाई निम्नमा निम्न बनाउन सक्नुहुन्छ:
ग्रीप "^ [0-9] \ {3 \} -" नम्बरहरू
स्ल्याशले {कोष्ठकबाट बचाउँछ ताकि यसले नियमित अभिव्यक्तिको रूपमा काम गर्दछ तर सारमा यो के हो भने [0-9] {3} जसको अर्थ 0 देखि 9 9 पटकको बीचमा हो।
घुमाई कोष्ठकहरू निम्न रूपमा प्रयोग गर्न सकिन्छ:
{5,10}
{5,}
{5,10} अर्थ को लागी क्यारेक्टर को खोज को कम से कम 5 पल्ट दोहोर्याइयो तर 10 देखि अधिक नहीं हो, जबकि {5,} को अर्थ कम्तिमा 5 पटक दोहोर्याई जान पर्छ तर यो भन्दा अधिक हुन सक्छ।
09 को 09
अन्य आदेशहरूबाट आउटपुट प्रयोग गरेर ग्रीप प्रयोग गर्दै
यस प्रकारले हामीले व्यक्तिगत फाइलहरूमा मिल्दो ढाँचा देखेको छ तर ग्रीपले अन्य आदेशहरू बाट ढाँचा मिलानको लागि इनपुटको रूपमा प्रयोग गर्न सक्दछ।
यो को एक उत्कृष्ट उदाहरण पीएस आदेश प्रयोग गर्दछ जो सक्रिय प्रक्रियाहरु सूचीबद्ध गर्दछ।
उदाहरणको लागि निम्न आदेश चलाउनुहोस्:
ps -ef
तपाईंको प्रणालीमा रहेका सबै चलिरहेको प्रक्रियाहरू प्रदर्शित हुनेछन्।
तपाइँ एक विशेष चलिरहेको प्रक्रियाको खोजी गर्न ग्रीप प्रयोग गर्न सक्नुहुन्छ:
ps -ef | grep फायरफक्स