బాష్లో స్ట్రింగ్ కంటైన్మెంట్ పరిచయం
బాష్ స్క్రిప్ట్లతో పని చేస్తున్నప్పుడు, స్ట్రింగ్ నిర్దిష్ట సబ్స్ట్రింగ్ని కలిగి ఉందో లేదో మీరు తనిఖీ చేయాల్సిన సందర్భాలు సర్వసాధారణం. ఇన్పుట్ డేటాను అన్వయించడం, స్ట్రింగ్లను ధృవీకరించడం లేదా నిర్దిష్ట ప్రమాణాల ఆధారంగా కంటెంట్ను ఫిల్టర్ చేయడం వంటి అనేక స్క్రిప్టింగ్ దృశ్యాలలో ఇది ప్రాథమిక పని.
ఈ కథనంలో, మేము షరతులతో కూడిన స్టేట్మెంట్లు మరియు `echo` మరియు `grep` వంటి ఆదేశాలను ఉపయోగించడంతో సహా బాష్లో దీన్ని సాధించడానికి వివిధ పద్ధతులను అన్వేషిస్తాము. మేము మీ స్క్రిప్ట్లను మరింత మెయింటెయిన్ చేయగలిగేలా మరియు లోపాలకి తక్కువ అవకాశం ఉండేలా చేయడానికి అత్యంత సమర్థవంతమైన మరియు చదవగలిగే విధానాలను కూడా చర్చిస్తాము.
| ఆదేశం | వివరణ |
|---|---|
| [[ ]] | బాష్లో స్ట్రింగ్లు మరియు ఇతర పరిస్థితులను పరీక్షించడానికి ఉపయోగించే షరతులతో కూడిన వ్యక్తీకరణ. |
| * | స్ట్రింగ్ ప్యాటర్న్ మ్యాచ్లో ఎన్ని అక్షరాలనైనా సూచించడానికి ఉపయోగించే వైల్డ్కార్డ్ అక్షరం. |
| echo | ఆర్గ్యుమెంట్గా పాస్ చేసిన టెక్స్ట్ లేదా స్ట్రింగ్ లైన్ను ప్రదర్శించడానికి ఉపయోగించే కమాండ్. |
| grep | సాధారణ వ్యక్తీకరణకు సరిపోలే పంక్తుల కోసం సాదా-టెక్స్ట్ డేటాను శోధించడానికి కమాండ్-లైన్ యుటిలిటీ. |
| -q | grep కోసం ఒక ఎంపిక సాధారణ అవుట్పుట్ను అణిచివేస్తుంది మరియు నిష్క్రమణ స్థితిని మాత్రమే అందిస్తుంది. |
| case | బాష్లోని నమూనాలను సరిపోల్చడానికి ఉపయోగించే షరతులతో కూడిన ప్రకటన. |
| ;; | విభిన్న నమూనా చర్యలను వేరు చేయడానికి కేస్ స్టేట్మెంట్లలో ఉపయోగించే డీలిమిటర్. |
బాష్లో సబ్స్ట్రింగ్ తనిఖీని అర్థం చేసుకోవడం
మొదటి స్క్రిప్ట్లో, మేము ఉపయోగిస్తాము conditional statements స్ట్రింగ్ నిర్దిష్ట సబ్స్ట్రింగ్ని కలిగి ఉందో లేదో తనిఖీ చేయడానికి. మేము ప్రధాన స్ట్రింగ్ మరియు సబ్స్ట్రింగ్ని నిర్వచించాము, ఆపై దాన్ని ఉపయోగించండి [[ ]] నిర్మాణం, ఇది అధునాతన స్ట్రింగ్ పోలికలను అనుమతిస్తుంది. బ్రాకెట్ల లోపల, మేము ఉపయోగిస్తాము * వైల్డ్కార్డ్ సబ్స్ట్రింగ్కు ముందు మరియు తర్వాత ఎన్ని అక్షరాలనైనా సూచించడానికి. షరతు నిజమైతే, స్క్రిప్ట్ "అది ఉంది!" అని ముద్రిస్తుంది; లేకుంటే, అది "అది లేదు!" అని ముద్రిస్తుంది. ఈ పద్ధతి సమర్థవంతమైనది మరియు నమూనా సరిపోలిక కోసం బాష్ యొక్క అంతర్నిర్మిత సామర్థ్యాలను ఉపయోగించుకుంటుంది.
రెండవ స్క్రిప్ట్ ఉపయోగిస్తుంది echo మరియు grep అదే ఫలితాన్ని సాధించడానికి ఆదేశాలు. మేము మళ్లీ ప్రధాన స్ట్రింగ్ మరియు సబ్స్ట్రింగ్ని నిర్వచించి, ఆపై ఉపయోగించండి echo ప్రధాన స్ట్రింగ్ను అవుట్పుట్ చేయడానికి మరియు దానిని పైప్ చేయడానికి grep ఉపయోగించి -q సాధారణ అవుట్పుట్ను అణిచివేసే ఎంపిక. Grep ప్రధాన స్ట్రింగ్లోని సబ్స్ట్రింగ్ కోసం శోధిస్తుంది. సబ్స్ట్రింగ్ కనుగొనబడితే, స్క్రిప్ట్ "అది ఉంది!" అని ముద్రిస్తుంది; కాకపోతే, అది "అది లేదు!" అని ప్రింట్ చేస్తుంది. ఈ విధానం శక్తివంతమైన వచన-శోధన సామర్థ్యాలను ప్రభావితం చేస్తుంది grep, సంక్లిష్టమైన వచన నమూనాలను సరిపోల్చాల్సిన స్క్రిప్ట్లకు ఇది అనుకూలంగా ఉంటుంది.
అధునాతన బాష్ స్ట్రింగ్ ఆపరేషన్లను అన్వేషించడం
మూడవ స్క్రిప్ట్ a ని ఉపయోగిస్తుంది case సబ్స్ట్రింగ్ ఉనికిని తనిఖీ చేయడానికి ప్రకటన. ప్రధాన స్ట్రింగ్ మరియు సబ్స్ట్రింగ్ను నిర్వచించిన తర్వాత, ది case ప్రకటన వివిధ నమూనాలకు వ్యతిరేకంగా ప్రధాన స్ట్రింగ్తో సరిపోలుతుంది. సబ్స్ట్రింగ్ ఉన్నట్లయితే, సంబంధిత చర్య అమలు చేయబడుతుంది, "అది ఉంది!". సబ్స్ట్రింగ్ కనుగొనబడకపోతే, డిఫాల్ట్ చర్య "అది లేదు!" అని ముద్రిస్తుంది. తనిఖీ చేయడానికి బహుళ నమూనాలు ఉన్నప్పుడు ఈ పద్ధతి చాలా ఉపయోగకరంగా ఉంటుంది case స్టేట్మెంట్ మల్టిపుల్ కంటే కాంప్లెక్స్ బ్రాంకింగ్ లాజిక్ని మరింత క్లీన్గా హ్యాండిల్ చేయగలదు if-else ప్రకటనలు.
మొత్తంగా, ఈ పద్ధతుల్లో ప్రతి ఒక్కటి బాష్లో స్ట్రింగ్ నిర్దిష్ట సబ్స్ట్రింగ్ని కలిగి ఉందో లేదో తెలుసుకోవడానికి ఒక మార్గాన్ని అందిస్తుంది. పద్ధతి యొక్క ఎంపిక అవసరమైన స్ట్రింగ్ మ్యాచింగ్ యొక్క సంక్లిష్టత మరియు స్క్రిప్ట్ యొక్క నిర్దిష్ట అవసరాలపై ఆధారపడి ఉంటుంది. ఉపయోగించి [[ ]] వైల్డ్కార్డ్లతో కలపడం, సాధారణ తనిఖీల కోసం సూటిగా మరియు సమర్థవంతంగా ఉంటుంది echo మరియు grep మరింత శక్తివంతమైన నమూనా సరిపోలికను అందిస్తుంది. ది case ప్రకటన, మరోవైపు, నిర్మాణాత్మక మార్గంలో బహుళ సరిపోలిక పరిస్థితులను నిర్వహించడానికి అనువైనది.
బాష్లో సబ్స్ట్రింగ్ల కోసం తనిఖీ చేయడానికి షరతులతో కూడిన స్టేట్మెంట్లను ఉపయోగించడం
బాష్ స్క్రిప్టింగ్ పద్ధతి
#!/bin/bash# Define the main stringstring="My string"# Define the substring to search forsubstring="foo"# Check if the substring is present in the main stringif [[ "$string" == *"$substring"* ]]; thenecho "It's there!"elseecho "It's not there!"fi
బాష్లోని సబ్స్ట్రింగ్లను గుర్తించడానికి ఎకో మరియు గ్రెప్లను ఉపయోగించడం
ఎకో మరియు గ్రెప్ ఆదేశాలను కలపడం
#!/bin/bash# Define the main stringstring="My string"# Define the substring to search forsubstring="foo"# Use echo and grep to check if the substring is presentif echo "$string" | grep -q "$substring"; thenecho "It's there!"elseecho "It's not there!"fi
బాష్లో సబ్స్ట్రింగ్ డిటెక్షన్ కోసం కేస్ స్టేట్మెంట్లను ఉపయోగించడం
కేస్ స్టేట్మెంట్లతో బాష్ స్క్రిప్టింగ్
#!/bin/bash# Define the main stringstring="My string"# Define the substring to search forsubstring="foo"# Use case statement to check for the substringcase "$string" in*"$substring"*)echo "It's there!";;*)echo "It's not there!";;esac
బాష్లో స్ట్రింగ్ కంటైన్మెంట్ కోసం అధునాతన పద్ధతులు
బాష్లో స్ట్రింగ్ సబ్స్ట్రింగ్ని కలిగి ఉందో లేదో తనిఖీ చేయడానికి ప్రాథమిక పద్ధతులతో పాటు, విభిన్న దృశ్యాలలో ఉపయోగపడే మరిన్ని అధునాతన పద్ధతులు ఉన్నాయి. అటువంటి పద్ధతిలో సాధారణ వ్యక్తీకరణలను ఉపయోగించడం awk ఆదేశం. Awk నమూనా స్కానింగ్ మరియు ప్రాసెసింగ్ కోసం శక్తివంతమైన ప్రోగ్రామింగ్ భాష. ఉపయోగించడం ద్వార awk, మీరు ఎక్కువ సౌలభ్యంతో క్లిష్టమైన స్ట్రింగ్ ఆపరేషన్లను చేయవచ్చు. ఉదాహరణకు, మీరు ఉపయోగించవచ్చు awk స్ట్రింగ్లోని సబ్స్ట్రింగ్ కోసం శోధించడానికి మరియు మ్యాచ్ ఆధారంగా చర్యలను అమలు చేయడానికి.
మరొక అధునాతన టెక్నిక్ను ఉపయోగించడం sed కమాండ్, ఇది స్ట్రీమ్ ఎడిటర్. Sed డేటా స్ట్రీమ్ లేదా ఫైల్లో వచనాన్ని అన్వయించడానికి మరియు మార్చడానికి ఉపయోగపడుతుంది. మీరు ఉపయోగించవచ్చు sed సబ్స్ట్రింగ్ కోసం శోధించడానికి మరియు సరిపోలిన వచనంపై ప్రత్యామ్నాయాలు లేదా ఇతర కార్యకలాపాలను నిర్వహించడానికి. ఈ అధునాతన పద్ధతులు, మరింత క్లిష్టంగా ఉన్నప్పటికీ, బాష్ స్క్రిప్ట్లలో టెక్స్ట్ ప్రాసెసింగ్ కోసం శక్తివంతమైన సామర్థ్యాలను అందిస్తాయి, అధునాతన స్ట్రింగ్ మానిప్యులేషన్లు అవసరమయ్యే పనుల కోసం వాటిని అమూల్యమైనవిగా చేస్తాయి.
బాష్లో స్ట్రింగ్ కంటైన్మెంట్ గురించి తరచుగా అడిగే ప్రశ్నలు
- స్ట్రింగ్ ఉపయోగించి సబ్స్ట్రింగ్ ఉందో లేదో నేను ఎలా తనిఖీ చేయాలి awk?
- స్ట్రింగ్ ఉపయోగించి సబ్స్ట్రింగ్ ఉందో లేదో తనిఖీ చేయడానికి awk, మీరు ఆదేశాన్ని ఉపయోగించవచ్చు: echo "$string" | awk '{if ($0 ~ /substring/) print "It's there!"}'
- నేను ఉపయోగించ వచ్చునా sed సబ్స్ట్రింగ్ కోసం తనిఖీ చేయాలా?
- అవును, మీరు ఉపయోగించవచ్చు sed కమాండ్తో సబ్స్ట్రింగ్ కోసం తనిఖీ చేయడానికి: echo "$string" | sed -n '/substring/p'
- ఉపయోగించడం వల్ల ప్రయోజనం ఏమిటి awk పైగా grep?
- Awk మరింత శక్తివంతమైన టెక్స్ట్ ప్రాసెసింగ్ సామర్థ్యాలను అందిస్తుంది మరియు నమూనా సరిపోలికల ఆధారంగా చర్యలను చేయగలదు, దాని కంటే బహుముఖంగా చేస్తుంది grep.
- సబ్స్ట్రింగ్ కోసం శోధిస్తున్నప్పుడు నేను కేసును ఎలా విస్మరించగలను?
- సబ్స్ట్రింగ్ కోసం శోధిస్తున్నప్పుడు కేసును విస్మరించడానికి, మీరు దీన్ని ఉపయోగించవచ్చు -i తో ఎంపిక grep: echo "$string" | grep -iq "substring"
- ఉపయోగించడం సాధ్యమేనా regex తో if బాష్లో ప్రకటనలు?
- అవును, మీరు దీనితో regexని ఉపయోగించవచ్చు if ఉపయోగించి బాష్లోని ప్రకటనలు =~ ఆపరేటర్: if [[ "$string" =~ regex ]]; then
బాష్లో స్ట్రింగ్ కంటైన్మెంట్పై తుది ఆలోచనలు
బాష్లో స్ట్రింగ్ సబ్స్ట్రింగ్ని కలిగి ఉందో లేదో నిర్ణయించడం అనేది షరతులతో కూడిన స్టేట్మెంట్లు, grep ఆదేశాలు మరియు కేస్ స్టేట్మెంట్లతో సహా అనేక పద్ధతులను ఉపయోగించి నిర్వహించగల సాధారణ పని. ప్రతి పద్ధతి సమస్యను పరిష్కరించడానికి ఒక ప్రత్యేకమైన విధానాన్ని అందిస్తుంది, మీ నిర్దిష్ట అవసరాల ఆధారంగా అత్యంత అనుకూలమైనదాన్ని ఎంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ టెక్నిక్లను ప్రావీణ్యం చేసుకోవడం ద్వారా, మీరు మీ బాష్ స్క్రిప్ట్ల సామర్థ్యాన్ని మరియు చదవగలిగే సామర్థ్యాన్ని పెంచుకోవచ్చు.