जवाबों:
आप बैश के पैरामीटर विस्तार का उपयोग कर सकते हैं :
string="foo-bar-123" && printf "%s\n" "${string##*-}"
123
यदि आप Awk के साथ एक और प्रक्रिया का उपयोग करना चाहते हैं:
echo "foo-bar-123" | awk -F- '{print $NF}'
या, यदि आप Sed पसंद करते हैं:
echo "foo-bar-123" | sed 's/.*-//'
एक हल्का बाहरी प्रक्रिया, जैसा कि ग्लेन जैकमैन का सुझाव है cut
:
cut -d- -f3 <<< "$string"
cut
:; वास्तव में लेकिन केवल तभी जब अंतिम फ़ील्ड की संख्या ज्ञात हो (जैसा कि प्रश्न थोड़ा अस्पष्ट है: क्या अंतिम भाग निकालने के लिए एक सरल कमांड लाइन है ...? )
rev <<< "$string" | cut -d- -f1 | rev
, लेकिन फिर हम परम की सहजता से दूर हो रहे हैं। विस्तार।
cut
:cut -d- -f3 <<< "$string"