शुरुआती गाइड टू शैल स्क्रिप्टिंग 3: अधिक बेसिक कमांड एंड चेन

विषयसूची:

शुरुआती गाइड टू शैल स्क्रिप्टिंग 3: अधिक बेसिक कमांड एंड चेन
शुरुआती गाइड टू शैल स्क्रिप्टिंग 3: अधिक बेसिक कमांड एंड चेन
Anonim
आपने स्क्रिप्ट बनाने, तर्कों का उपयोग करने और लूप के निर्माण के बारे में सीखा है। अब, आइए कुछ और बुनियादी कमांड, टेक्स्ट फ़ाइल मैनिपुलेशन, और इनपुट और आउटपुट को फ़ाइलों और अन्य कमांड पर रीडायरेक्ट करें।
आपने स्क्रिप्ट बनाने, तर्कों का उपयोग करने और लूप के निर्माण के बारे में सीखा है। अब, आइए कुछ और बुनियादी कमांड, टेक्स्ट फ़ाइल मैनिपुलेशन, और इनपुट और आउटपुट को फ़ाइलों और अन्य कमांड पर रीडायरेक्ट करें।

कुछ बुनियादी उपयोगी कमांड

हमने आपको पहले से ही शैल स्क्रिप्ट का मूल ब्रेकडाउन दिया है और लूप के लिए एक उदाहरण-आधारित रूपरेखा दी है, लेकिन अगर आप हमारी शेल स्क्रिप्टिंग मार्गदर्शिका को अब तक याद कर चुके हैं तो उन लेखों को देखना सुनिश्चित करें।

कमांड लाइन कई कारणों से अद्भुत है, और पुनर्निर्देशन सबसे प्रमुख में से एक है। यदि आपको आगे की कार्रवाई करने या किसी अन्य चीज़ के लिए इसका उपयोग करने के लिए प्रत्येक आदेश के आउटपुट को नोट करना और पुन: उत्पन्न करना था, तो हम सब बहुत पहले पागल हो गए थे। पुनर्निर्देशन हमें उस आउटपुट का उपयोग करने और इसे सहेजने या तुरंत किसी अन्य कमांड के इनपुट के रूप में उपयोग करने देता है। हम फ़ाइलों को अन्य आदेशों के लिए इनपुट के रूप में भी उपयोग कर सकते हैं।

आगे बढ़ने से पहले, आइए कुछ बुनियादी आदेशों को कवर करें जो कई अलग-अलग स्थानों में उपयोग किए जा सकते हैं।

गूंज - यह आदेश आउटपुट के रूप में कमांड लाइन पर अपने तर्क की संपूर्णता को प्रिंट करता है (प्रदर्शित करता है)

echo argument with spaces

जैसा कि आप देख सकते हैं, विशेष पात्रों को "बच निकला" होना चाहिए ताकि उनका सामान्य रूप से इलाज किया जा सके। यह चरित्र के सामने बैकस्लैश () का उपयोग करके किया जाता है। कोट्स का उपयोग करना बेहतर विचार है। इको कमांड चर के साथ भी काम करता है।
जैसा कि आप देख सकते हैं, विशेष पात्रों को "बच निकला" होना चाहिए ताकि उनका सामान्य रूप से इलाज किया जा सके। यह चरित्र के सामने बैकस्लैश () का उपयोग करके किया जाता है। कोट्स का उपयोग करना बेहतर विचार है। इको कमांड चर के साथ भी काम करता है।
जैसा कि आप देख सकते हैं, सिंगल और डबल कोट्स अलग-अलग व्यवहार करते हैं। अधिक जानकारी के लिए, बैश शैल में सिंगल और डबल कोट्स के बीच क्या अंतर है, इसकी जांच करें?
जैसा कि आप देख सकते हैं, सिंगल और डबल कोट्स अलग-अलग व्यवहार करते हैं। अधिक जानकारी के लिए, बैश शैल में सिंगल और डबल कोट्स के बीच क्या अंतर है, इसकी जांच करें?

बिल्ली - यह आदेश आउटपुट के रूप में पाठ फ़ाइलों की सामग्री प्रदर्शित करता है।

cat file_to_be_read

मान लें कि हम इस पाठ फ़ाइल को नैनो में बनाते हैं:

जब हम फ़ाइल पर बिल्ली कमांड का उपयोग करते हैं, तो हम इसका आउटपुट देख सकते हैं।
जब हम फ़ाइल पर बिल्ली कमांड का उपयोग करते हैं, तो हम इसका आउटपुट देख सकते हैं।
grep - यह लिनक्स में आपके लिए उपलब्ध सबसे शक्तिशाली और उपयोगी आदेशों में से एक है। यह वैश्विक / नियमित अभिव्यक्ति प्रिंट के लिए खड़ा है। यह एक फ़ाइल को देखता है और किसी भी पंक्ति को मुद्रित करता है जो किसी विशेष पैटर्न से मेल खाता है। चूंकि यह पैटर्न "नियमित अभिव्यक्ति" पर आधारित है, इसलिए एक संक्षिप्त रेखा मिलान करने के लिए पैटर्न की एक बड़ी संख्या उत्पन्न कर सकती है। नहीं, हालांकि, आप खोज के लिए एक टर्न दर्ज कर सकते हैं।
grep - यह लिनक्स में आपके लिए उपलब्ध सबसे शक्तिशाली और उपयोगी आदेशों में से एक है। यह वैश्विक / नियमित अभिव्यक्ति प्रिंट के लिए खड़ा है। यह एक फ़ाइल को देखता है और किसी भी पंक्ति को मुद्रित करता है जो किसी विशेष पैटर्न से मेल खाता है। चूंकि यह पैटर्न "नियमित अभिव्यक्ति" पर आधारित है, इसलिए एक संक्षिप्त रेखा मिलान करने के लिए पैटर्न की एक बड़ी संख्या उत्पन्न कर सकती है। नहीं, हालांकि, आप खोज के लिए एक टर्न दर्ज कर सकते हैं।

grep pattern file

मैं आपको आश्वासन देता हूं, grep अधिक कर सकता है, लेकिन अभी के लिए आसान सामान के साथ चिपके रहें।
मैं आपको आश्वासन देता हूं, grep अधिक कर सकता है, लेकिन अभी के लिए आसान सामान के साथ चिपके रहें।

रीडायरेक्टिंग आउटपुट

फ़ाइल में कमांड के आउटपुट को रीडायरेक्ट करने के लिए, हम एक विशेष चरित्र का उपयोग करते हैं, प्रतीक से अधिक (>)।

आइए अपनी सूची बदल दें, क्या हम? निम्न आदेश दर्ज करें:

echo pepperoni > list

आप देख सकते हैं कि गूंज अब लाइन प्रदर्शित नहीं करती है, और जब हम "सूची" फ़ाइल की सामग्री देखते हैं, तो हम देखते हैं कि हमने वहां क्या प्रतिबिंबित किया है।
आप देख सकते हैं कि गूंज अब लाइन प्रदर्शित नहीं करती है, और जब हम "सूची" फ़ाइल की सामग्री देखते हैं, तो हम देखते हैं कि हमने वहां क्या प्रतिबिंबित किया है।

यह भी ध्यान रखें कि "सूची" की पिछली सामग्री हटा दी गई थी। दुबारा कोशिश कीजिये:

जब आप किसी फ़ाइल का पुन: उपयोग करना चाहते हैं तो यह उपयोगी हो सकता है, लेकिन अक्सर हम केवल एक मौजूदा फ़ाइल में जोड़ना चाहते हैं। इसके लिए, हम लगातार दो से अधिक प्रतीकों का उपयोग करते हैं:
जब आप किसी फ़ाइल का पुन: उपयोग करना चाहते हैं तो यह उपयोगी हो सकता है, लेकिन अक्सर हम केवल एक मौजूदा फ़ाइल में जोड़ना चाहते हैं। इसके लिए, हम लगातार दो से अधिक प्रतीकों का उपयोग करते हैं:

echo yellow peppers >> list

आसान! चलिए एक बड़ी सूची बनाने के लिए इस कमांड का उपयोग करते हैं, क्या हम?
आसान! चलिए एक बड़ी सूची बनाने के लिए इस कमांड का उपयोग करते हैं, क्या हम?
हम वहाँ चलें। मुझे लगता है कि आप देख सकते हैं कि इतने सारे geeks कमांड लाइन का उपयोग करने के लिए क्यों करें और ऐसा करने के लिए, लेकिन यह भी बेहतर हो जाता है।
हम वहाँ चलें। मुझे लगता है कि आप देख सकते हैं कि इतने सारे geeks कमांड लाइन का उपयोग करने के लिए क्यों करें और ऐसा करने के लिए, लेकिन यह भी बेहतर हो जाता है।

आइए कमांड का आउटपुट लें और इसे फाइल में डालें:

ls –al / > ~/rootlist

फ़ाइलों की सूचियां बनाना, उन्हें संपादित करना, और फिर उन लोगों पर चलने वाले आदेशों को कभी भी आसान नहीं किया गया है। और, जबकि हम कमांड लाइन में इन बुनियादी कार्यों को कर रहे हैं, ये भी स्क्रिप्ट में अच्छी तरह से काम करते हैं।
फ़ाइलों की सूचियां बनाना, उन्हें संपादित करना, और फिर उन लोगों पर चलने वाले आदेशों को कभी भी आसान नहीं किया गया है। और, जबकि हम कमांड लाइन में इन बुनियादी कार्यों को कर रहे हैं, ये भी स्क्रिप्ट में अच्छी तरह से काम करते हैं।

पाइपिंग, या चेनिंग

पाइपिंग का नाम इतना है क्योंकि यह पाइप का उपयोग करता है, (|; अधिकांश कीबोर्ड पर कुंजी के साथ साझा किया जाता है)। अनिवार्य रूप से, यह एक कमांड का आउटपुट लेता है और इसे सीधे दूसरे को खिलाता है। आप इस तरह से एक बहुत ही वांछित वांछित आउटपुट प्राप्त करने के लिए कमांड की लंबी श्रृंखला बना सकते हैं, और यह grep जैसे कमांड के लिए बहुत सुविधाजनक है।

यह बहुत कुछ ">" जैसा कार्य करता है सिवाय इसके कि इसे कई बार जंजीर किया जा सकता है और इसका प्रभाव अधिक सामान्य है कि इसे टेक्स्ट फ़ाइल से गुज़रने की आवश्यकता नहीं है।
यह बहुत कुछ ">" जैसा कार्य करता है सिवाय इसके कि इसे कई बार जंजीर किया जा सकता है और इसका प्रभाव अधिक सामान्य है कि इसे टेक्स्ट फ़ाइल से गुज़रने की आवश्यकता नहीं है।

जैसा कि आप देख सकते हैं, grep केस-संवेदी है। आप मामले को अनदेखा करने के लिए "-i" ध्वज का उपयोग कर सकते हैं।

Image
Image

इनपुट रीडायरेक्टिंग

आप कम से कम प्रतीक (<) का उपयोग कर कमांड के लिए फ़ाइलों से इनपुट ले सकते हैं।

cat < list

"यह तर्क का उपयोग करने से अलग नहीं है!" आप कह सकते हैं। खैर, आप इस मामले में सही होंगे। जहां इनपुट का पुनर्निर्देशन वास्तव में काम में आता है, एक साथ आदेशों को चेन करने में होता है।
"यह तर्क का उपयोग करने से अलग नहीं है!" आप कह सकते हैं। खैर, आप इस मामले में सही होंगे। जहां इनपुट का पुनर्निर्देशन वास्तव में काम में आता है, एक साथ आदेशों को चेन करने में होता है।

आइए मान लें कि हम किसी भी शब्द को फ़िल्टर करना चाहते हैं जिसमें "वर्तमान" सूची से "पेप" है, जिसे "संशोधन" नामक एक नई फ़ाइल में शामिल किया गया है।

grep pep < list > revisions

आइए इस कमांड को फिर से करें, और कुछ सॉर्टिंग जोड़ें।
आइए इस कमांड को फिर से करें, और कुछ सॉर्टिंग जोड़ें।

grep pep < list | sort > revisions

यह इनपुट फ़ाइल "सूची" से खोज शब्द के रूप में "पेप" का उपयोग करेगा, इसे वर्णानुक्रम में क्रमबद्ध करें (सभी ऊपरी केस शर्तों के बाद सभी ऊपरी-केस शर्तों), फिर इसे "संशोधन" फ़ाइल में आउटपुट करें।
यह इनपुट फ़ाइल "सूची" से खोज शब्द के रूप में "पेप" का उपयोग करेगा, इसे वर्णानुक्रम में क्रमबद्ध करें (सभी ऊपरी केस शर्तों के बाद सभी ऊपरी-केस शर्तों), फिर इसे "संशोधन" फ़ाइल में आउटपुट करें।

सॉर्ट कमांड को चित्रित करने के लिए, आइए निम्न उदाहरण देखें:

जैसा कि आप देख सकते हैं, सॉर्ट कमांड में "-f" ध्वज जोड़ना आपको केस को अनदेखा करने की अनुमति देता है। यह हमारे लिए पाठ फ़ाइलों में रेखाओं को वर्णित करना और पूंजीकरण को अनदेखा करना आसान बनाता है जब इससे कोई फर्क नहीं पड़ता।
जैसा कि आप देख सकते हैं, सॉर्ट कमांड में "-f" ध्वज जोड़ना आपको केस को अनदेखा करने की अनुमति देता है। यह हमारे लिए पाठ फ़ाइलों में रेखाओं को वर्णित करना और पूंजीकरण को अनदेखा करना आसान बनाता है जब इससे कोई फर्क नहीं पड़ता।

एक सरल स्क्रिप्ट

आइए एक स्क्रिप्ट बनाएं जिसमें निम्न फ़ॉर्म है:

script searchterm listfile

यह शब्द ले जाएगा और सूची फ़ाइल के माध्यम से खोजने के लिए grep का उपयोग करेगा, परिणामों को सॉर्ट करेगा, और फिर उन्हें दूसरी फ़ाइल में आउटपुट करेगा।

यहां निर्देशिका है कि हम स्क्रिप्ट का परीक्षण करेंगे:
यहां निर्देशिका है कि हम स्क्रिप्ट का परीक्षण करेंगे:
और, हम यहां क्या है, इसकी एक सूची बना सकते हैं, फिर स्क्रिप्ट चलाएं।
और, हम यहां क्या है, इसकी एक सूची बना सकते हैं, फिर स्क्रिप्ट चलाएं।
Image
Image

तुम वहाँ जाओ! जितना अधिक आप नियमित अभिव्यक्तियों के नियमों को सीखते हैं, उतना सटीक रूप से आप एक खोज कमांड को एक साथ रख सकते हैं। और, उद्धरण में मान्य कुछ भी आपके पहले तर्क के लिए प्रतिस्थापित किया जा सकता है!

जहां तक सॉर्टिंग हो जाती है, आप वर्णानुक्रम के अनुसार बस कुछ भी कर सकते हैं। निम्न में से कुछ आदेशों के लिए मैन पेज पर एक नज़र डालें:

  • tsort - एक और उन्नत टोपोलॉजिकल सॉर्टिंग समारोह
  • tr - आपको विशिष्ट वर्णों को अन्य वर्णों में मैप करने देता है, और उनके बीच प्रतिलेखन देता है।
  • uniq - किसी भी गैर अद्वितीय (हटाएं: डुप्लिकेट) हटा देता है
  • awk - वास्तव में उन्नत टेक्स्ट प्रोसेसिंग भाषा / फ़ंक्शन जिसका उपयोग फ़ाइल नामों में फ़ील्ड को अलग करने के लिए किया जा सकता है
  • कट, पेस्ट / जॉइन - पाठ फ़ाइलों से फ़ील्ड को अलग करने और कॉलम में नया डेटा जोड़ने के लिए उपयोगी आदेश
  • देखो - grep की तरह की खोज करता है, लेकिन लुकअप के लिए एक शब्दकोश फ़ाइल (जिसे उपयोगकर्ता निर्दिष्ट किया जा सकता है) का उपयोग करता है
  • डब्ल्यूसी - आपको शब्द गणना, रेखा गणना, चरित्र गणना, आदि प्राप्त करने देता है

हमने आज कुछ और मूल बातें देखीं जो स्क्रिप्ट में कमांड लाइन पर उपयोगी हो सकती हैं। टेक्स्ट-आधारित डेटा अक्सर उन चीज़ों के दिल में होता है जिनका हम दैनिक उपयोग करते हैं, इसलिए इसके साथ काम करने में सक्षम होना, इसे खोजना और इसे कुशल बनाना महत्वपूर्ण है।

आपकी कुछ पसंदीदा स्क्रिप्ट क्या हैं? टेक्स्ट-आधारित फ़ाइलों के लिए कोई विशेष उपयोग स्क्रिप्ट है? टिप्पणियों में आप जो जानते हैं उसे साझा करें!

सिफारिश की: