2012-02-08 13 views
5

मेरे पास एक स्ट्रिंग चर है और मैं इसके अंतिम चरित्र को हटाना चाहता हूं।मैं ksh में स्ट्रिंग चर के अंतिम अक्षर को कैसे हटा सकता हूं?

उदाहरण के लिए: "परीक्षण 1" से "परीक्षण" तक पास करें।

मैं केएसएच में यह कैसे कर सकता हूं?

उत्तर

12
var="testing1" 
print ${var%?} 

उत्पादन

testing 

${var%?} एक पैरामीटर संपादन सुविधा है। '%' दाहिने तरफ से हटाता है और निम्नलिखित पैटर्न की अपेक्षा करता है। पैटर्न आपके उदाहरण मामले में केवल '1' (उद्धरण के बिना) हो सकता है। मैं जंगली कार्ड चार '?' का उपयोग कर रहा हूँ ताकि किसी भी एक चरित्र को हटा दिया जाएगा। आप सभी वर्णों को इंगित करने के लिए '*' char का उपयोग कर सकते हैं, लेकिन आम तौर पर आप 'बंडल' करना चाहते हैं कि कुछ पूर्ववर्ती वर्णों के साथ, उदाहरण के लिए echo ${var%i*} आपको परिणामस्वरूप केवल test देगा। स्ट्रिंग के बाईं ओर से शुरू होने वाले '#' और '##' पर '%%' वेरिएंट भी हैं।

मुझे आशा है कि इस मदद करता है।

+1

धन्यवाद m8, यह वही है जो मुझे चाहिए :) –

संबंधित मुद्दे