Bash Scripting परिचय
Alex Scriven
Data Scientist
इस कोर्स में आप सीखेंगे:
पहले, क्यों Bash?
Bash का मतलब 'Bourne Again Shell' है (एक पन)
80's में बना, पर आज भी बहुत लोकप्रिय शेल. कई Unix सिस्टम्स, Macs पर डिफॉल्ट
Unix ही इंटरनेट है! (ML Models, Data Pipelines चलते हैं)
तो Bash स्क्रिप्टिंग क्यों?
इस कोर्स के लिए आपसे कुछ बेसिक नॉलेज अपेक्षित है.
cat, grep, sed जैसी बेसिक कमांड्स इस्तेमाल की होंअगर थोड़ी जंग लगी है तो चिंता न करें — अभी रिवाइज करेंगे!
कुछ महत्वपूर्ण शेल कमांड्स:
(e)grep regex पैटर्न-मैचिंग के आधार पर इनपुट फिल्टर करता हैcat फ़ाइल की सामग्री लाइन-बाय-लाइन जोड़ता हैtail \ head केवल आखिरी या पहली -n (एक फ्लैग) लाइन्स देते हैंwc शब्द/लाइन काउंट करता है (फ्लैग्स -w -l के साथ)sed पैटर्न-मैच्ड स्ट्रिंग रिप्लेसमेंट करता है'Regex' या regular expressions Bash स्क्रिप्टिंग के लिए जरूरी स्किल है.
आपको अक्सर फ़ाइलें, फ़ाइल के अंदर डेटा, आर्ग्युमेंट्स आदि मैच/फिल्टर करने होंगे. इसे फिर से देखना उपयोगी है.
अपना regex टेस्ट करने के लिए regex101.com जैसे साइट्स का प्रयोग करें
आइए एक उदाहरण से कुछ शेल कमांड्स रिवाइज करें.
एक टेक्स्ट फ़ाइल fruits.txt मानिए, जिसमें 3 लाइन्स हैं:
banana
apple
carrot
अगर हम grep 'a' fruits.txt चलाएँ तो आउटपुट होगा:
banana
apple
carrot
पर अगर हम grep 'p' fruits.txt चलाएँ तो मिलेगा:
apple
याद रखें, स्क्वेयर ब्रैकेट्स एक मैचिंग सेट होते हैं जैसे [eyfv]. ^ लगाने से यह इनवर्स सेट बन जाता है (इन अक्षरों/अंकों के अलावा)
तो अगर हम grep '[pc]' fruits.txt चलाएँ तो मिलेगा:
apple
carrot
आपने शायद टर्मिनल में 'pipes' का उपयोग किया होगा. अगर फ़ाइल में बहुत सारे फल हों, तो हम sort | uniq -c कर सकते हैं
wc -l और head से पाइप करेंcat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Bash Scripting परिचय