ഒരു സ്ട്രിംഗിൽ ബാഷിൽ ഒരു സബ്‌സ്ട്രിംഗ് ഉണ്ടോ എന്ന് എങ്ങനെ നിർണ്ണയിക്കും

ഒരു സ്ട്രിംഗിൽ ബാഷിൽ ഒരു സബ്‌സ്ട്രിംഗ് ഉണ്ടോ എന്ന് എങ്ങനെ നിർണ്ണയിക്കും
Bash

ബാഷിലെ സ്ട്രിംഗ് മാച്ചിംഗിൻ്റെ ആമുഖം

ബാഷ് സ്‌ക്രിപ്റ്റിംഗിൽ, ഒരു സ്‌ട്രിംഗിൽ ഒരു പ്രത്യേക സബ്‌സ്‌ട്രിംഗ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കുന്നത് ഒരു സാധാരണ ജോലിയാണ്. ഈ ആവശ്യത്തിനായി ലഭ്യമായ രീതികൾ ഈ ഗൈഡ് പര്യവേക്ഷണം ചെയ്യും. നിങ്ങളുടെ സ്‌ക്രിപ്‌റ്റുകൾ കാര്യക്ഷമമായും കാര്യക്ഷമമായും പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കിക്കൊണ്ട് സബ്‌സ്‌ട്രിംഗുകൾ പരിശോധിക്കുന്നതിന് ഞങ്ങൾ വിവിധ സാങ്കേതിക വിദ്യകൾ ഉപയോഗിക്കും.

ഞങ്ങൾ ഒരു ലളിതമായ ഉദാഹരണത്തിൽ ആരംഭിക്കുകയും ക്രമേണ കൂടുതൽ വിപുലമായ രീതികൾ പര്യവേക്ഷണം ചെയ്യുകയും ചെയ്യും. ഈ ഗൈഡിൻ്റെ അവസാനത്തോടെ, നിങ്ങളുടെ നിർദ്ദിഷ്ട ആവശ്യങ്ങൾക്ക് ഏറ്റവും മികച്ച സമീപനം തിരഞ്ഞെടുക്കാനും ക്ലീനർ, കൂടുതൽ വായിക്കാനാകുന്ന ബാഷ് സ്ക്രിപ്റ്റുകൾ എഴുതാനും നിങ്ങൾക്ക് കഴിയും.

കമാൻഡ് വിവരണം
[[ $string == *"$substring"* ]] പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ ഉപയോഗിച്ച് വേരിയബിൾ സ്‌ട്രിംഗിൽ $substring സബ്‌സ്ട്രിംഗ് അടങ്ങിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുന്നു.
grep -q grep-ൽ ക്വയറ്റ് മോഡ്, തിരയൽ സ്ട്രിംഗ് കണ്ടെത്തിയാൽ 0 ഉം അല്ലാത്തപക്ഷം 1 ഉം, ഔട്ട്‌പുട്ട് ഉണ്ടാക്കാതെ നൽകുന്നു.
echo "$string" | grep ഗ്രെപ്പിലേക്ക് സ്‌ട്രിംഗ് പൈപ്പ് ചെയ്‌ത് സ്‌ട്രിംഗിനുള്ളിലെ സബ്‌സ്‌ട്രിംഗിനായി തിരയുന്നു.
case "$string" in *"$substring"*) സ്‌ട്രിംഗിനുള്ളിൽ സബ്‌സ്‌ട്രിംഗ് നിലവിലുണ്ടോ എന്ന് പരിശോധിക്കാൻ പാറ്റേൺ പൊരുത്തപ്പെടുത്തലിനായി കേസ് സ്റ്റേറ്റ്‌മെൻ്റ് ഉപയോഗിക്കുന്നു.
esac കേസ് സ്റ്റേറ്റ്മെൻ്റ് ബ്ലോക്ക് അവസാനിപ്പിക്കുന്നു.
;; ഒരു കേസ് സ്റ്റേറ്റ്മെൻ്റിനുള്ളിൽ ഒരു പാറ്റേൺ ബ്ലോക്ക് അവസാനിപ്പിക്കുന്നു.
-q ഔട്ട്‌പുട്ട് അടിച്ചമർത്തുന്ന grep-ലെ ഓപ്ഷൻ, പൊരുത്തങ്ങൾ പ്രദർശിപ്പിക്കാതെ തന്നെ സാന്നിധ്യം പരിശോധിക്കുന്നതിന് ഉപയോഗപ്രദമാണ്.

ബാഷിലെ സ്ട്രിംഗ് മാച്ചിംഗ് മനസ്സിലാക്കുന്നു

ബാഷ് സ്‌ക്രിപ്‌റ്റിംഗിൽ, ഒരു സ്‌ട്രിംഗിൽ ഒരു പ്രത്യേക സബ്‌സ്‌ട്രിംഗ് ഉണ്ടോ എന്ന് നിർണ്ണയിക്കുന്നത് ഒരു സാധാരണ ആവശ്യകതയാണ്. ആദ്യ സ്ക്രിപ്റ്റ് ബാഷിൻ്റെ പാറ്റേൺ പൊരുത്തപ്പെടുത്തൽ കഴിവുകൾ ഉപയോഗിക്കുന്നു. അവസ്ഥ [[ $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

ബാഷിൽ ഒരു സബ്‌സ്ട്രിംഗ് കണ്ടെത്താൻ grep ഉപയോഗിക്കുന്നു

grep ഉപയോഗിച്ച് ബാഷ് സ്ക്രിപ്റ്റിംഗ്

#!/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 പ്രസ്താവനകൾ, വ്യത്യസ്ത ആവശ്യങ്ങൾക്കായി ബഹുമുഖ പരിഹാരങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു. ഈ ടെക്‌നിക്കുകൾ മനസ്സിലാക്കുകയും പ്രയോഗിക്കുകയും ചെയ്യുന്നതിലൂടെ, നിങ്ങളുടെ സ്‌ക്രിപ്റ്റുകളുടെ പ്രവർത്തനക്ഷമതയും വായനാക്ഷമതയും വർദ്ധിപ്പിക്കാൻ കഴിയും, അവ കൂടുതൽ കരുത്തുറ്റതും പരിപാലിക്കാൻ എളുപ്പവുമാക്കുന്നു.