બૅશમાં સ્ટ્રિંગ મેનિપ્યુલેશનને તોડવું
શેલ સ્ક્રિપ્ટો સાથે કામ કરતી વખતે, એક સામાન્ય કાર્ય સીમાંકન પર આધારિત સ્ટ્રિંગને વિભાજિત કરવાનું છે. દાખલા તરીકે, અર્ધવિરામ દ્વારા વિભાજિત ઇમેઇલ સરનામાં ધરાવતી સ્ટ્રિંગનો વિચાર કરો. જો તમારે દરેક ઈમેલ પર વ્યક્તિગત રીતે પ્રક્રિયા કરવાની જરૂર હોય, તો આ સ્ટ્રિંગને કેવી રીતે વિભાજિત કરવી તે સમજવું આવશ્યક બની જાય છે. આ લેખ તમને બાશમાં આ હાંસલ કરવા માટે વિવિધ પદ્ધતિઓ દ્વારા માર્ગદર્શન આપશે.
અમે ઉકેલો શોધીશું જેમ કે `tr` આદેશનો ઉપયોગ કરવો અને આંતરિક ક્ષેત્ર વિભાજક (IFS) સાથે ચાલાકી કરવી. અંત સુધીમાં, તમે સ્ટ્રિંગ સ્પ્લિટિંગને અસરકારક રીતે હેન્ડલ કરી શકશો અને IFS ને તેના ડિફોલ્ટ મૂલ્ય પર ફરીથી સેટ કરી શકશો. ચાલો અંદર જઈએ અને તમારા બેશ સ્ક્રિપ્ટીંગ કાર્યોને સરળ બનાવીએ!
| આદેશ | વર્ણન |
|---|---|
| tr | અક્ષરોનું ભાષાંતર કરે છે અથવા કાઢી નાખે છે. શબ્દમાળાને વિભાજિત કરવા માટે અર્ધવિરામને નવી લાઇન અક્ષર સાથે બદલવા માટે અહીં વપરાય છે. |
| IFS | આંતરિક ક્ષેત્ર વિભાજક, બેશ સ્ક્રિપ્ટ્સમાં ચોક્કસ સીમાંકના આધારે શબ્દમાળાઓને વિભાજિત કરવા માટે વપરાય છે. |
| read -r -a | ઇનપુટની લાઇન વાંચે છે અને તેને એરેમાં વિભાજિત કરે છે. -r વિકલ્પ બેકસ્લેશને એસ્કેપ અક્ષરો તરીકે અર્થઘટન કરતા અટકાવે છે. |
| echo | પ્રમાણભૂત આઉટપુટ પર ટેક્સ્ટ છાપે છે. વિભાજિત શબ્દમાળા તત્વો દર્શાવવા માટે વપરાય છે. |
| split | એક પર્લ ફંક્શન કે જે સ્ટ્રિંગને સ્પષ્ટ કરેલ સીમાંકના આધારે સ્ટ્રિંગની સૂચિમાં વિભાજીત કરે છે. |
| foreach | પર્લ લૂપ માળખું જે મૂલ્યોની સૂચિ પર પુનરાવર્તિત થાય છે. |
બેશ સ્ટ્રિંગ સ્પ્લિટિંગ તકનીકોને સમજવું
પ્રથમ બેશ સ્ક્રિપ્ટ દર્શાવે છે કે સ્ટ્રીંગનો ઉપયોગ કરીને કેવી રીતે વિભાજિત કરવું tr આદેશ અહીં, આપણે શબ્દમાળા વ્યાખ્યાયિત કરીએ છીએ IN="bla@some.com;john@home.com" અને ઉપયોગ કરો echo સાથે જોડાણમાં tr અર્ધવિરામ સીમાંકને નવી રેખા અક્ષરમાં અનુવાદિત કરવા માટે. આ અસરકારક રીતે સ્ટ્રિંગને વ્યક્તિગત રેખાઓમાં તોડે છે. આ for લૂપ પછી દરેક લાઇન પર પુનરાવર્તિત થાય છે, ચોરસ કૌંસમાં સરનામાંને છાપે છે. આ પદ્ધતિ સીધી છે અને યુનિક્સ કમાન્ડની શક્તિશાળી ટેક્સ્ટ પ્રોસેસિંગ ક્ષમતાઓનો લાભ લે છે.
બીજી પદ્ધતિમાં સમાયોજનનો સમાવેશ થાય છે Internal Field Separator (IFS). કામચલાઉ સેટિંગ દ્વારા IFS અર્ધવિરામમાં, આપણે સ્ટ્રિંગને એરેમાં વિભાજિત કરી શકીએ છીએ. અમે મૂળ સાચવીએ છીએ IFS પ્રતિ OIFS તેને સંશોધિત કરતા પહેલા, ખાતરી કરીને કે અમે તેને પછીથી પુનઃસ્થાપિત કરી શકીએ છીએ. આ read -r -a આદેશ નામના એરેમાં ઇનપુટ સ્ટ્રિંગ વાંચે છે mails2, તેને સંશોધિતના આધારે વિભાજિત કરવું IFS. પ્રક્રિયા કર્યા પછી, મૂળ IFS પુનઃસ્થાપિત કરવામાં આવે છે. આ અભિગમ બેશમાં સ્ટ્રિંગ સ્પ્લિટિંગને હેન્ડલ કરવા માટે વધુ પ્રોગ્રામેટિક રીત પ્રદાન કરે છે, જે અમને વધુ મેનીપ્યુલેશન માટે એરેનો ઉપયોગ કરવાની મંજૂરી આપે છે.
ડિલિમિટર પર સ્ટ્રિંગ્સને વિભાજિત કરવા માટે બૅશનો ઉપયોગ કરવો
બેશ સ્ક્રિપ્ટ
#!/usr/bin/env bash# Input stringIN="bla@some.com;john@home.com"# Split string using 'tr' and iteratemails=$(echo $IN | tr ";" "\n")for addr in $mails; doecho "> [$addr]"done# Output:# > [bla@some.com]# > [john@home.com]
IFS નો ઉપયોગ કરીને બેશમાં સ્ટ્રિંગને વિભાજીત કરવી
બેશ સ્ક્રિપ્ટ
#!/usr/bin/env bash# Input stringIN="bla@some.com;john@home.com"# Save the original IFSOIFS=$IFS# Set IFS to semicolonIFS=';'# Split string into an arrayread -r -a mails2 <<< "$IN"# Restore the original IFSIFS=$OIFS# Iterate over the arrayfor x in "${mails2[@]}"; doecho "> [$x]"done# Output:# > [bla@some.com]# > [john@home.com]
સ્ટ્રિંગ સ્પ્લિટિંગ માટે પાયથોનનો ઉપયોગ કરવો
પાયથોન સ્ક્રિપ્ટ
#!/usr/bin/env python3# Input stringIN = "bla@some.com;john@home.com"# Split string by semicolonmails = IN.split(';')# Iterate and print each elementfor addr in mails:print(f"> [{addr}]")# Output:# > [bla@some.com]# > [john@home.com]
સ્ટ્રીંગને વિભાજિત કરવા માટે પર્લનો ઉપયોગ કરવો
પર્લ સ્ક્રિપ્ટ
#!/usr/bin/env perluse strict;use warnings;# Input stringmy $IN = "bla@some.com;john@home.com";# Split string by semicolonmy @mails = split(';', $IN);# Iterate and print each elementforeach my $addr (@mails) {print "> [$addr]\n";}# Output:# > [bla@some.com]# > [john@home.com]
બૅશમાં અદ્યતન સ્ટ્રિંગ સ્પ્લિટિંગ તકનીકો
બેશમાં સ્ટ્રિંગ્સને વિભાજિત કરવા માટેની બીજી શક્તિશાળી પદ્ધતિનો ઉપયોગ શામેલ છે awk આદેશ awk પેટર્ન સ્કેનિંગ અને પ્રોસેસિંગ માટે રચાયેલ બહુમુખી કમાન્ડ-લાઇન યુટિલિટી છે. તે ખાસ કરીને સ્પ્લિટિંગ સ્ટ્રિંગ્સ માટે ઉપયોગી થઈ શકે છે કારણ કે તે અમને કસ્ટમ ક્ષેત્ર વિભાજકોને વ્યાખ્યાયિત કરવાની મંજૂરી આપે છે. દાખલા તરીકે, અમે ઉપયોગ કરી શકીએ છીએ awk -F";" '{print $1, $2}' અર્ધવિરામ સીમાંકના આધારે સ્ટ્રિંગને વિભાજિત કરવા અને વ્યક્તિગત ઘટકોને છાપવા માટે. આ પદ્ધતિ અત્યંત લવચીક છે અને વધુ જટિલ સ્ટ્રિંગ મેનિપ્યુલેશન કાર્યોને હેન્ડલ કરી શકે છે, જે તેને Bash પ્રોગ્રામરની ટૂલકીટમાં મૂલ્યવાન સાધન બનાવે છે.
વધુમાં, ધ cut સીમાંકકોના આધારે સ્ટ્રિંગ્સને વિભાજિત કરવા માટે આદેશનો ઉપયોગ કરી શકાય છે. આ cut આદેશનો ઉપયોગ સામાન્ય રીતે ઇનપુટ ડેટાની દરેક લાઇનમાંથી વિભાગો કાઢવા માટે થાય છે. સાથે સીમાંકનો ઉલ્લેખ કરીને -d વિકલ્પ અને સાથે ક્ષેત્રો પસંદ કરી રહ્યા છીએ -f વિકલ્પ, અમે કાર્યક્ષમ રીતે સ્ટ્રીંગના ભાગોને વિભાજિત અને બહાર કાઢી શકીએ છીએ. ઉદાહરણ તરીકે, ઉપયોગ કરીને echo $IN | cut -d';' -f1 ઇનપુટ સ્ટ્રિંગમાંથી પ્રથમ ઇમેઇલ સરનામું બહાર કાઢશે. આ અદ્યતન પદ્ધતિઓ બૅશમાં સ્ટ્રિંગ મેનિપ્યુલેશન કાર્યો માટે વધુ નિયંત્રણ અને ચોકસાઇ પ્રદાન કરે છે.
બેશમાં સ્ટ્રિંગ સ્પ્લિટિંગ વિશે સામાન્ય પ્રશ્નો અને જવાબો
- હું બાશમાં સીમાંકન પર સ્ટ્રિંગને કેવી રીતે વિભાજિત કરી શકું?
- તમે ઉપયોગ કરી શકો છો IFS ચલ અથવા આદેશો જેવા tr, awk, અને cut સીમાંક પર શબ્દમાળાઓ વિભાજિત કરવા માટે.
- શું છે IFS Bash માં ચલ?
- આ IFS (આંતરિક ક્ષેત્ર વિભાજક) એક વિશિષ્ટ ચલ છે જે ઇનપુટ ટેક્સ્ટને શબ્દો અથવા ટોકન્સમાં વિભાજિત કરવા માટે વપરાતા અક્ષર(ઓ)ને વ્યાખ્યાયિત કરે છે.
- હું કેવી રીતે રીસેટ કરી શકું IFS તેના મૂળભૂત મૂલ્યમાં ચલ?
- મૂળ સાચવો IFS તેને બદલતા પહેલા મૂલ્ય, અને પ્રક્રિયા કર્યા પછી તેને પુનઃસ્થાપિત કરો: OIFS=$IFS; IFS=';'; ... ; IFS=$OIFS.
- શું કરે છે tr શબ્દમાળા વિભાજનમાં આદેશ કરો?
- આ tr આદેશ અક્ષરોનું ભાષાંતર કરે છે અથવા કાઢી નાખે છે. તે સ્ટ્રિંગને વિભાજિત કરવા માટે સીમાંકકોને નવી રેખાઓ સાથે બદલી શકે છે: echo $IN | tr ";" "\n".
- શું હું બેશનો ઉપયોગ કરીને સ્ટ્રિંગને એરેમાં વિભાજિત કરી શકું?
- હા, બદલીને IFS ચલ અને ઉપયોગ read -r -a, તમે સ્ટ્રિંગને એરેમાં વિભાજિત કરી શકો છો: read -r -a array <<< "$string".
- શું છે awk આદેશ માટે વપરાય છે?
- awk પેટર્ન સ્કેનિંગ અને પ્રોસેસિંગ માટે કમાન્ડ-લાઇન યુટિલિટી છે. તે વૈવિધ્યપૂર્ણ ક્ષેત્ર વિભાજકોને વ્યાખ્યાયિત કરીને શબ્દમાળાઓને વિભાજિત કરી શકે છે.
- કેવી રીતે કરે છે cut આદેશ કામ?
- આ cut આદેશ ઇનપુટની દરેક લાઇનમાંથી વિભાગો કાઢે છે. તે સીમાંકનો ઉલ્લેખ કરીને અને ફીલ્ડ્સ પસંદ કરીને શબ્દમાળાઓને વિભાજિત કરી શકે છે: echo $string | cut -d';' -f1.
- શા માટે ઉપયોગ કરે છે IFS શબ્દમાળા વિભાજનમાં મદદરૂપ?
- ઉપયોગ કરીને IFS તમને વિભાજિત સ્ટ્રિંગ્સ માટે કસ્ટમ ડિલિમિટર્સને વ્યાખ્યાયિત કરવાની મંજૂરી આપે છે, તેને વિવિધ ઇનપુટ ફોર્મેટ માટે બહુમુખી બનાવે છે.
- શું બેશમાં બહુવિધ સીમાંકકો દ્વારા સ્ટ્રિંગને વિભાજિત કરવું શક્ય છે?
- હા, તમે મિશ્રણનો ઉપયોગ કરી શકો છો tr અને awk બહુવિધ સીમાંકકોને હેન્ડલ કરવા માટે.
- શું હું ઉપયોગ કરી શકું છું sed બેશમાં સ્ટ્રિંગ સ્પ્લિટિંગ માટે?
- જ્યારે sed મુખ્યત્વે સ્ટ્રીમ એડિટર છે, તેને અન્ય આદેશો સાથે જોડી શકાય છે જેમ કે awk પરોક્ષ રીતે શબ્દમાળાઓ વિભાજિત કરવા માટે.
બાશમાં સ્ટ્રિંગ સ્પ્લિટિંગ પરના અંતિમ વિચારો
બેશમાં સ્ટ્રીંગ મેનીપ્યુલેશનમાં નિપુણતા તમારી સ્ક્રિપ્ટીંગ કાર્યક્ષમતામાં નોંધપાત્ર રીતે સુધારો કરી શકે છે. ઉપયોગ કરે છે કે કેમ IFS સરળ સીમાંકકો અથવા વધુ અદ્યતન સાધનો જેવા કે tr અને awk, આ તકનીકો અસરકારક બેશ પ્રોગ્રામિંગ માટે આવશ્યક છે. હંમેશા મૂળ પુનઃસ્થાપિત કરવાનું યાદ રાખો IFS તમારી સ્ક્રિપ્ટમાં અનપેક્ષિત વર્તન ટાળવા માટે. આ પદ્ધતિઓ વડે, તમે તમારી Bash સ્ક્રિપ્ટ્સમાં સ્ટ્રિંગ પ્રોસેસિંગ કાર્યોની વિશાળ શ્રેણીને હેન્ડલ કરી શકો છો.