चर के मूल्य का एक केस-संवेदी स्ट्रिंग खोज के लिए needle
चर के मूल्य में haystack
:
case "$haystack" in
*"$needle"*) echo "present";
*) echo "absent";
esac
केस-असंवेदनशील स्ट्रिंग खोज के लिए, दोनों को एक ही मामले में परिवर्तित करें।
uc_needle=$(printf %s "$needle" | tr '[:lower:]' '[:upper:]' ; echo .); uc_needle=${uc_needle%.}
uc_haystack=$(printf %s "$haystack" | tr '[:lower:]' '[:upper:]' ; echo .); uc_haystack=${uc_haystack%.}
case "$uc_haystack" in
*"$uc_needle"*) echo "present";;
*) echo "absent";;
esac
ध्यान दें कि tr
GNU कोरुटिल्स मल्टीबाइट स्थानों (जैसे UTF-8) का समर्थन नहीं करता है। मल्टीबाइट स्थानों के साथ काम करने के लिए, इसके बजाय awk का उपयोग करें। यदि आप awk का उपयोग करने जा रहे हैं, तो आप इसे स्ट्रिंग तुलना कर सकते हैं, न कि केवल रूपांतरण।
if awk 'BEGIN {exit !index(toupper(ARGV[2]), toupper(ARGV[1]))}' "$needle" "$haystack"; then
echo "present"
else
echo "absent"
fi
tr
बिजीबॉक्स से समर्थन नहीं करता है वाक्य रचना; आप इसके बजाय उपयोग कर सकते हैं । बिजीबॉक्स गैर-एएससीआईआई स्थानों का समर्थन नहीं करता है।[:CLASS:]
tr a-z A-Z
Bash (लेकिन श नहीं), संस्करण 4.0+ में, केस रूपांतरण के लिए अंतर्निहित सिंटैक्स और स्ट्रिंग मिलान के लिए एक सरल सिंटैक्स है।
if [[ "${haystack^^}" = *"${needle^^}"* ]]; then
echo "present"
else
echo "absent"
esac
grep -i
शायद?