बैश स्क्रिप्ट में सबस्ट्रिंग्स की जाँच करना

Bash

बैश में स्ट्रिंग कन्टेनमेंट का परिचय

बैश स्क्रिप्ट के साथ काम करते समय, ऐसी स्थितियों का सामना करना आम बात है जहां आपको यह जांचने की आवश्यकता होती है कि किसी स्ट्रिंग में कोई विशिष्ट सबस्ट्रिंग है या नहीं। यह कई स्क्रिप्टिंग परिदृश्यों में एक मौलिक कार्य है, जैसे इनपुट डेटा को पार्स करना, स्ट्रिंग्स को मान्य करना, या कुछ मानदंडों के आधार पर सामग्री को फ़िल्टर करना।

इस आलेख में, हम बैश में इसे प्राप्त करने के लिए विभिन्न तरीकों का पता लगाएंगे, जिसमें सशर्त कथन और 'इको' और 'ग्रेप' जैसे कमांड का उपयोग करना शामिल है। हम आपकी स्क्रिप्ट को अधिक रखरखाव योग्य और त्रुटियों की संभावना कम बनाने के लिए सबसे कुशल और पठनीय तरीकों पर भी चर्चा करेंगे।

आज्ञा विवरण
[[ ]] बैश में स्ट्रिंग्स और अन्य स्थितियों का परीक्षण करने के लिए उपयोग की जाने वाली एक सशर्त अभिव्यक्ति।
* एक वाइल्डकार्ड वर्ण जिसका उपयोग स्ट्रिंग पैटर्न मिलान में किसी भी संख्या में वर्णों का प्रतिनिधित्व करने के लिए किया जाता है।
echo एक कमांड का उपयोग तर्क के रूप में पारित पाठ या स्ट्रिंग की एक पंक्ति को प्रदर्शित करने के लिए किया जाता है।
grep नियमित अभिव्यक्ति से मेल खाने वाली पंक्तियों के लिए सादा-पाठ डेटा खोजने के लिए एक कमांड-लाइन उपयोगिता।
-q ग्रेप के लिए एक विकल्प जो सामान्य आउटपुट को दबाता है और केवल निकास स्थिति लौटाता है।
case बैश में पैटर्न से मिलान करने के लिए उपयोग किया जाने वाला एक सशर्त बयान।
;; विभिन्न पैटर्न क्रियाओं को अलग करने के लिए केस स्टेटमेंट में उपयोग किया जाने वाला एक सीमांकक।

बैश में सबस्ट्रिंग चेकिंग को समझना

पहली स्क्रिप्ट में, हम उपयोग करते हैं यह जाँचने के लिए कि क्या किसी स्ट्रिंग में कोई विशिष्ट सबस्ट्रिंग है। हम एक मुख्य स्ट्रिंग और एक सबस्ट्रिंग को परिभाषित करते हैं, फिर इसका उपयोग करते हैं निर्माण, जो उन्नत स्ट्रिंग तुलना की अनुमति देता है। कोष्ठक के अंदर, हम का उपयोग करते हैं सबस्ट्रिंग से पहले और बाद में किसी भी संख्या में वर्णों का प्रतिनिधित्व करने के लिए वाइल्डकार्ड। यदि स्थिति सत्य है, तो स्क्रिप्ट "यह वहाँ है!" प्रिंट करती है; अन्यथा, यह "यह वहां नहीं है!" प्रिंट करता है। यह विधि कुशल है और पैटर्न मिलान के लिए बैश की अंतर्निहित क्षमताओं का उपयोग करती है।

दूसरी लिपि कार्यरत है और समान परिणाम प्राप्त करने का आदेश देता है। हम फिर से एक मुख्य स्ट्रिंग और एक सबस्ट्रिंग को परिभाषित करते हैं, फिर उपयोग करते हैं मुख्य स्ट्रिंग को आउटपुट करने और इसे पाइप करने के लिए grep का उपयोग सामान्य आउटपुट को दबाने का विकल्प। मुख्य स्ट्रिंग के भीतर सबस्ट्रिंग की खोज करता है। यदि सबस्ट्रिंग मिल जाती है, तो स्क्रिप्ट "यह वहां है!" प्रिंट करती है; यदि नहीं, तो यह प्रिंट करता है "यह वहां नहीं है!"। यह दृष्टिकोण शक्तिशाली पाठ-खोज क्षमताओं का लाभ उठाता है , इसे उन स्क्रिप्टों के लिए उपयुक्त बनाता है जहां जटिल पाठ पैटर्न का मिलान करने की आवश्यकता होती है।

उन्नत बैश स्ट्रिंग संचालन की खोज

तीसरी स्क्रिप्ट का उपयोग करता है एक सबस्ट्रिंग की उपस्थिति की जाँच करने के लिए कथन। मुख्य स्ट्रिंग और सबस्ट्रिंग को परिभाषित करने के बाद, कथन विभिन्न पैटर्न के विरुद्ध मुख्य स्ट्रिंग से मेल खाता है। यदि सबस्ट्रिंग मौजूद है, तो "यह वहां है!" प्रिंट करके संबंधित कार्रवाई निष्पादित की जाती है। यदि सबस्ट्रिंग नहीं मिलती है, तो डिफ़ॉल्ट क्रिया "यह वहां नहीं है!" प्रिंट करती है। यह विधि विशेष रूप से तब उपयोगी होती है जब जांचने के लिए कई पैटर्न हों स्टेटमेंट मल्टीपल की तुलना में जटिल ब्रांचिंग लॉजिक को अधिक सफाई से संभाल सकता है if-else बयान.

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

बैश में सबस्ट्रिंग की जांच करने के लिए सशर्त विवरण का उपयोग करना

बैश स्क्रिप्टिंग विधि

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present in the main string
if [[ "$string" == *"$substring"* ]]; then
  echo "It's there!"
else
  echo "It's not there!"
fi

बैश में सबस्ट्रिंग का पता लगाने के लिए इको और ग्रेप का उपयोग करना

इको और ग्रेप कमांड का संयोजन

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use echo and grep to check if the substring is present
if echo "$string" | grep -q "$substring"; then
  echo "It's there!"
else
  echo "It's not there!"
fi

बैश में सबस्ट्रिंग डिटेक्शन के लिए केस स्टेटमेंट का उपयोग करना

केस स्टेटमेंट के साथ बैश स्क्रिप्टिंग

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use case statement to check for the substring
case "$string" in
  *"$substring"*)
    echo "It's there!"
    ;;
  *)
    echo "It's not there!"
    ;;
esac

बैश में स्ट्रिंग रोकथाम के लिए उन्नत तरीके

बैश में किसी स्ट्रिंग में कोई सबस्ट्रिंग है या नहीं इसकी जांच करने के लिए बुनियादी तरीकों के अलावा, और भी उन्नत तकनीकें हैं जो विभिन्न परिदृश्यों में उपयोगी हो सकती हैं। ऐसी ही एक विधि में नियमित अभिव्यक्तियों का उपयोग करना शामिल है आज्ञा। पैटर्न स्कैनिंग और प्रोसेसिंग के लिए एक शक्तिशाली प्रोग्रामिंग भाषा है। का उपयोग करके , आप अधिक लचीलेपन के साथ जटिल स्ट्रिंग ऑपरेशन कर सकते हैं। उदाहरण के लिए, आप उपयोग कर सकते हैं awk एक स्ट्रिंग के भीतर एक सबस्ट्रिंग की खोज करना और मिलान के आधार पर क्रियाएं निष्पादित करना।

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

बैश में स्ट्रिंग कन्टेनमेंट के बारे में अक्सर पूछे जाने वाले प्रश्न

  1. मैं कैसे जांचूं कि किसी स्ट्रिंग में सबस्ट्रिंग का उपयोग किया गया है या नहीं ?
  2. यह जांचने के लिए कि क्या किसी स्ट्रिंग में सबस्ट्रिंग का उपयोग किया गया है , आप कमांड का उपयोग कर सकते हैं:
  3. क्या मैं उपयोग कर सकता हूँ किसी सबस्ट्रिंग की जाँच करने के लिए?
  4. हाँ, आप उपयोग कर सकते हैं कमांड के साथ सबस्ट्रिंग की जांच करने के लिए:
  5. प्रयोग करने से क्या फायदा है ऊपर ?
  6. अधिक शक्तिशाली पाठ प्रसंस्करण क्षमताएं प्रदान करता है और पैटर्न मिलान के आधार पर कार्य कर सकता है, जिससे यह अधिक बहुमुखी हो जाता है .
  7. सबस्ट्रिंग खोजते समय मैं केस को कैसे अनदेखा कर सकता हूं?
  8. किसी सबस्ट्रिंग की खोज करते समय मामले को अनदेखा करने के लिए, आप इसका उपयोग कर सकते हैं विकल्प के साथ :
  9. क्या इसका उपयोग संभव है साथ बैश में बयान?
  10. हां, आप रेगेक्स का उपयोग कर सकते हैं का उपयोग करके बैश में कथन ऑपरेटर:

बैश में स्ट्रिंग कन्टेनमेंट पर अंतिम विचार

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