पर बैश स्ट्रिंग ऑपरेटरों को लागू करना मैं निरंतर स्ट्रिंग पर बैश स्ट्रिंग ऑपरेटरों का उपयोग करने का प्रयास कर रहा हूं। उदाहरण के लिए, आप चर $ foo पर निम्न कर सकते हैं:लगातार स्ट्रिंग
$ foo=a:b:c; echo ${foo##*:}
c
अब, अगर "एक: ख: ग":
echo ${"a:b:c"##*:}
स्ट्रिंग स्थिर है, मैं की तरह एक अधिक संक्षिप्त समाधान करना चाहते हैं
हालांकि, यह मान्य बैश वाक्यविन्यास नहीं है। क्या ऐसा करने का कोई तरीका है?
[कारण मुझे यह करने की आवश्यकता है (प्रतिस्थापन के परिणाम को हार्डकोड करने की बजाय, यानी "सी" यहां) क्योंकि मेरे पास एक कमांड टेम्पलेट है जहां "% h" प्लेसहोल्डर को चलाने से पहले कुछ बदल दिया जाता है आदेश; प्रतिस्थापन का परिणाम
यदि तार निरंतर डेलीमीटर के साथ सीमित हैं तो क्यों 'awk' या' sed' का उपयोग न करें? –
हां, यह एक वैध विकल्प भी है, मैं इस बारे में उत्सुक था कि यह बैश स्ट्रिंग ऑपरेटरों के साथ कैसे किया जा सकता है, जो मेरी राय में थोड़ा अधिक सुरुचिपूर्ण है। – a3nm