Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

उदाहरण के साथ, बैश/शैल लिपियों में एक स्ट्रिंग को कैसे विभाजित करें

यह लेख आपको दिखाएगा कि बैश/शैल स्क्रिप्ट में किसी दिए गए सीमांकक पर एक स्ट्रिंग को कैसे विभाजित किया जाए और कुछ उदाहरण दिखाए जाएं।

स्ट्रिंग्स को विभाजित करना आपकी स्क्रिप्ट को क्राफ्ट करते समय उपलब्ध होना एक आसान कार्य है। सीएसवी (कॉमा सेपरेटेड वैल्यू) एक सामान्य प्रारूप है जिसमें डेटा ऑनलाइन उपलब्ध कराया जाता है, जहां एक तालिका में डेटा फ़ील्ड (आश्चर्य) अल्पविराम से अलग होते हैं।

आप बस एक वाक्य को रिक्त स्थान पर शब्दों में विभाजित करना चाहते हैं, या पैराग्राफ को वाक्यों में विभाजित करना चाहते हैं, और इसी तरह।

कई समाधान स्ट्रिंग को विभाजित करने के बैश-विशिष्ट तरीकों पर ध्यान केंद्रित करते हैं। नीचे, मैं एक ऐसी विधि की रूपरेखा तैयार करूँगा जो किसी भी Linux शेल स्क्रिप्ट में काम करे।

कट का उपयोग करना स्ट्रिंग्स को विभाजित करने का आदेश

कट Linux में कमांड टेक्स्ट फ़ाइल की पंक्तियों से अनुभागों को हटाता है और फिर उन्हें आउटपुट करता है।

यह उदाहरण किसी दिए गए सीमांकक पर पाठ को विभाजित करने के लिए इस आदेश को अनुकूलित करेगा।

कट . के संपूर्ण उपयोगकर्ता मैनुअल के लिए आदेश, यहां क्लिक करें।

कोड

नीचे एक उदाहरण बैश स्क्रिप्ट है जो स्ट्रिंग splitMe . लेती है और अल्पविराम पर स्ट्रिंग स्प्लिट में उनकी स्थिति के आधार पर आइटम लौटाता है (, ):

#!/bin/bash

# Define a comma-separated string
splitMe='apple,banana,grape,kiwi'

# Get the first item in the split string
firstItem="$(echo $splitMe | cut -d',' -f1)"

# Get the third item in the split string
thirdItem="$(echo $splitMe | cut -d',' -f3)"

# Confirm the result by outputting it to screen
echo $thirdItem
पर आउटपुट करके परिणाम की पुष्टि करें

तो यह क्यों काम करता है? गूंज कमांड का उपयोग मूल स्ट्रिंग को कट . में पाइप करने के लिए किया जाता है आज्ञा। कट आदेश -d . का उपयोग करता है सीमांकक निर्दिष्ट करने का विकल्प (इस मामले में एक अल्पविराम, लेकिन किसी भी वर्ण या स्ट्रिंग का उपयोग किया जा सकता है ), और -f विकल्प के बाद यह निर्दिष्ट करने के लिए कि कौन सा फ़ील्ड लौटाया जाना चाहिए - यह उस आइटम की स्थिति है जिसे आप विभाजित स्ट्रिंग से प्राप्त करना चाहते हैं।

पुन:प्रयोज्य बैश फ़ंक्शन

यह सब ठीक है और अच्छा है, लेकिन यह वास्तव में पुन:उपयोग योग्य नहीं है - इसलिए यहां यह एक फ़ंक्शन में है:

#!/bin/bash

# Define function to split strings
# It will accept three parameters, the string to split, the delimiter, and finally the position of the item to return
splitMyString(){
    splitString=$1
    delimiter=$2
    item=$3
    result="$(echo $splitString | cut -d',' -f$item)"
    echo $result
}

# Define a string to split for testing
splitMe='apple,banana,grape,kiwi'

# Test the function by splitting the string at the comma and returning the second item
echo $(splitMyString $splitMe "," 2)


  1. rbash - एक प्रतिबंधित बैश शेल व्यावहारिक उदाहरणों के साथ समझाया गया

    लिनक्स शेल सबसे आकर्षक और शक्तिशाली में से एक है GNU /लिनक्स संचालित उपकरण। X . सहित सभी एप्लिकेशन , शेल के ऊपर बनाया गया है और लिनक्स शेल इतना शक्तिशाली है कि इसका उपयोग करके पूरे लिनक्स सिस्टम को ठीक से नियंत्रित किया जा सकता है। लिनक्स शेल का दूसरा पहलू यह है कि, यह संभावित रूप से हानिकारक हो सकत

  1. बैश शैल फंक्शन ट्यूटोरियल 6 व्यावहारिक उदाहरणों के साथ

    बैश शेल फ़ंक्शन समूह के लिए एकल नाम का उपयोग करके बाद में निष्पादन के लिए कई UNIX / Linux कमांड को समूहबद्ध करने का एक तरीका है। . बैश शेल फ़ंक्शन को नियमित यूनिक्स कमांड की तरह ही निष्पादित किया जा सकता है। शेल फ़ंक्शंस को मौजूदा शेल संदर्भ में उनकी व्याख्या करने के लिए कोई नई प्रक्रिया बनाए बिना न

  1. बैश स्क्रिप्टिंग परिचय ट्यूटोरियल 5 व्यावहारिक उदाहरणों के साथ

    हमारी चल रही यूनिक्स सेड और यूनिक्स Awk श्रृंखला के समान, हम बैश स्क्रिप्टिंग पर कई लेख पोस्ट करेंगे, जो सभी बैश स्क्रिप्टिंग तकनीकों को व्यावहारिक उदाहरणों के साथ कवर करेगा। शेल एक प्रोग्राम है, जो यूजर कमांड की व्याख्या करता है। कमांड या तो उपयोगकर्ता द्वारा सीधे दर्ज किए जाते हैं या शेल स्क्रिप्