कैसे निर्धारित करें कि एक स्ट्रिंग में बैश में एक सबस्ट्रिंग है

कैसे निर्धारित करें कि एक स्ट्रिंग में बैश में एक सबस्ट्रिंग है
Bash

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

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

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

आज्ञा विवरण
[[ $string == *"$substring"* ]] पैटर्न मिलान का उपयोग करके परीक्षण करें कि क्या वेरिएबल स्ट्रिंग में सबस्ट्रिंग $substring शामिल है।
grep -q ग्रेप में शांत मोड, यदि खोज स्ट्रिंग मिल जाती है तो 0 लौटाता है और अन्यथा, बिना कोई आउटपुट दिए 1 लौटाता है।
echo "$string" | grep स्ट्रिंग को grep में पाइप करके स्ट्रिंग के भीतर सबस्ट्रिंग की खोज करता है।
case "$string" in *"$substring"*) पैटर्न मिलान के लिए केस स्टेटमेंट का उपयोग यह जांचने के लिए करता है कि स्ट्रिंग के भीतर सबस्ट्रिंग मौजूद है या नहीं।
esac केस स्टेटमेंट ब्लॉक समाप्त होता है।
;; केस स्टेटमेंट के भीतर एक पैटर्न ब्लॉक को समाप्त करता है।
-q ग्रेप में विकल्प जो आउटपुट को दबाता है, मिलान प्रदर्शित किए बिना उपस्थिति की जांच करने के लिए उपयोगी है।

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

बैश स्क्रिप्टिंग में, यह निर्धारित करना कि किसी स्ट्रिंग में एक विशिष्ट सबस्ट्रिंग है या नहीं, एक सामान्य आवश्यकता है। पहली स्क्रिप्ट बैश की पैटर्न मिलान क्षमताओं का उपयोग करती है। स्थिति [[ $string == *"$substring"* ]] जाँचता है कि क्या वेरिएबल है string सबस्ट्रिंग शामिल है $substring. यदि पैटर्न पाया जाता है, तो यह प्रतिध्वनित होता है "यह वहाँ है!"। यह विधि सीधे बैश में सरल सबस्ट्रिंग खोजों के लिए संक्षिप्त और कुशल है।

दूसरी लिपि कार्यरत है grep एक ही कार्य के लिए. की प्रतिध्वनि करके string और इसे पाइपिंग करना grep -q, हम की उपस्थिति की जांच कर सकते हैं $substring थोड़े अलग तरीके से. -q विकल्प यह सुनिश्चित करता है grep शांत मोड में काम करता है, यदि सबस्ट्रिंग मिल जाती है तो बिना किसी आउटपुट के 0 लौटाता है। यह स्क्रिप्ट तब उपयोगी होती है जब आपको उपयोग करने की आवश्यकता होती है grepबैश स्क्रिप्ट के भीतर शक्तिशाली पाठ खोज क्षमताएं।

पैटर्न मिलान और ग्रेप का उपयोग करना

तीसरी स्क्रिप्ट का उपयोग करके एक अन्य विधि प्रदर्शित करती है case कथन। यहां ही case कथन जाँचता है कि क्या $string शामिल है $substring पैटर्न का मिलान करके *"$substring"* . यदि पैटर्न पाया जाता है, तो यह प्रतिध्वनित होता है "यह वहाँ है!"। यह दृष्टिकोण अधिक जटिल परिस्थितियों के लिए उपयोगी है या जब आपको किसी स्क्रिप्ट के भीतर कई पैटर्न का मिलान करने की आवश्यकता होती है।

ये सभी विधियां बैश में सबस्ट्रिंग की जांच करने के लिए कुशल तरीके प्रदान करती हैं, प्रत्येक के अपने फायदे हैं। पैटर्न के साथ मिलान [[...]] साधारण मामलों के लिए प्रत्यक्ष और कुशल है। का उपयोग करते हुए grep विशेष रूप से अधिक जटिल स्ट्रिंग खोजों के लिए अधिक लचीलापन और शक्तिशाली टेक्स्ट प्रोसेसिंग क्षमताएं प्रदान करता है। case स्टेटमेंट आपकी स्क्रिप्ट में कई स्थितियों को संभालने के लिए एक संरचित और पठनीय तरीका प्रदान करता है। इन विधियों को समझने से आप अपनी विशिष्ट स्क्रिप्टिंग आवश्यकताओं के लिए सर्वोत्तम दृष्टिकोण चुन सकते हैं।

यह जांचना कि किसी स्ट्रिंग में बैश में कोई सबस्ट्रिंग है या नहीं

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

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present
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 grep to check for the substring
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 a case statement to check for the substring
case "$string" in
  *"$substring"*)
    echo "It's there!"
    ;;
  *)
    echo "It's not there!"
    ;;
esac

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

बुनियादी सबस्ट्रिंग खोजों के अलावा, बैश स्क्रिप्टिंग नियमित अभिव्यक्ति और पैरामीटर विस्तार जैसी उन्नत तकनीकें भी प्रदान करती है। रेगुलर एक्सप्रेशन स्ट्रिंग के भीतर पैटर्न खोजने का एक मजबूत तरीका प्रदान करते हैं। जैसे उपकरणों का उपयोग करना grep साथ -E विकल्प (विस्तारित नियमित अभिव्यक्ति) आपको जटिल खोज पैटर्न को परिभाषित करने की अनुमति देता है। उदाहरण के लिए, आदेश echo "$string" | grep -E 'pattern' आपको अपनी स्ट्रिंग्स के भीतर अधिक विशिष्ट या लचीले पैटर्न खोजने की सुविधा देता है। परिवर्तनीय पाठ प्रारूपों से निपटने के दौरान यह विधि शक्तिशाली है।

एक अन्य उपयोगी तकनीक पैरामीटर विस्तार है। बैश पैरामीटर विस्तार के कई रूप प्रदान करता है जिसका उपयोग स्ट्रिंग्स में हेरफेर करने और सबस्ट्रिंग निकालने के लिए किया जा सकता है। उदाहरण के लिए, वाक्यविन्यास ${string:position:length} से एक सबस्ट्रिंग निकालता है string पे शुरुवात position किसी प्रदत्त के लिए length. इसी प्रकार, पैटर्न ${string#substring} का सबसे छोटा मिलान हटा देता है substring की शुरुआत से string, जबकि ${string##substring} सबसे लंबे मिलान को हटा देता है. ये तकनीकें आपकी स्क्रिप्ट के भीतर स्ट्रिंग हेरफेर पर अधिक विस्तृत नियंत्रण के लिए सहायक हैं।

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

  1. बैश में सबस्ट्रिंग की जाँच करने का सबसे सरल तरीका क्या है?
  2. सबसे सरल तरीका के साथ मिलान पैटर्न का उपयोग करना है [[ $string == *"$substring"* ]] वाक्य - विन्यास।
  3. मैं कैसे उपयोग कर सकता हूँ grep एक सबस्ट्रिंग खोजने के लिए?
  4. आप उपयोग कर सकते हैं echo "$string" | grep -q "$substring" यह जांचने के लिए कि क्या $substring में मौजूद है $string.
  5. बैश में पैरामीटर विस्तार क्या है?
  6. पैरामीटर विस्तार बैश में स्ट्रिंग्स में हेरफेर करने की एक तकनीक है। उदाहरण के लिए, ${string:position:length} एक सबस्ट्रिंग निकालता है।
  7. क्या मैं बैश स्क्रिप्ट में रेगुलर एक्सप्रेशन का उपयोग कर सकता हूँ?
  8. हां, आप जैसे टूल के साथ रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं grep -E विस्तारित पैटर्न मिलान के लिए.
  9. क्या करता है case बयान बैश में करते हैं?
  10. case स्टेटमेंट एक वेरिएबल के विरुद्ध पैटर्न मिलान की अनुमति देता है और मिलान किए गए पैटर्न के आधार पर कमांड निष्पादित करता है।
  11. कैसे हुआ ${string#substring} काम?
  12. पैरामीटर विस्तार का यह रूप सबसे छोटे मिलान को हटा देता है substring की शुरुआत से string.
  13. के बीच क्या अंतर है ${string#substring} और ${string##substring}?
  14. पहला सबसे छोटा मिलान हटा देता है, जबकि दूसरा सबसे लंबा मिलान हटा देता है substring की शुरुआत से string.
  15. क्या मैं एक ही स्थिति में एकाधिक सबस्ट्रिंग की जाँच कर सकता हूँ?
  16. हाँ, आप इसका उपयोग कर सकते हैं case एक ही स्थिति में एकाधिक पैटर्न की जांच करने के लिए कथन।
  17. का क्या उपयोग है -q विकल्प में grep?
  18. -q विकल्प में grep आउटपुट को दबा देता है और केवल निकास स्थिति लौटाता है, जिससे यह सशर्त जांच के लिए उपयोगी हो जाता है।

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

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