হাইফেনের পরে স্ট্রিংয়ের শেষ অংশটি পান


9

হাইফেন দ্বারা পৃথক করা স্ট্রিংয়ের শেষ অংশটি বের করার জন্য কি কোনও সাধারণ কমান্ড লাইন আছে? যেমন, আমি বের করে আনতে চান 123থেকে foo-bar-123

উত্তর:


21

আপনি বাশের প্যারামিটার সম্প্রসারণ ব্যবহার করতে পারেন :

string="foo-bar-123" && printf "%s\n" "${string##*-}"
123

আপনি যদি অন্য কোনও প্রক্রিয়াটি ব্যবহার করতে চান তবে আওক সহ:

echo "foo-bar-123" | awk -F- '{print $NF}'

অথবা, যদি আপনি শেডকে পছন্দ করেন:

echo "foo-bar-123" | sed 's/.*-//'

গ্লেন জ্যাকম্যানের পরামর্শ মতো হালকা বাহ্যিক প্রক্রিয়াটি হ'ল cut:

cut -d- -f3 <<< "$string"

শেল প্যারামিটার বিস্তৃতি সেরা উত্তর। একটি হালকা ওজনের বাহ্যিক সরঞ্জাম হ'ল cut:cut -d- -f3 <<< "$string"
গ্লেন জ্যাকম্যান

1
@glennjackman - Re: cut; প্রকৃতপক্ষে তবে কেবলমাত্র যদি শেষ ক্ষেত্রের সংখ্যাটি জানা থাকে (কারণ প্রশ্নটি কিছুটা দ্ব্যর্থক: শেষ অংশটি বের করার জন্য একটি সাধারণ কমান্ড লাইন আছে ...? )
ডোন_ক্রিসটি

2
@ don_crissti, সত্যিই। একটি করতে পারে rev <<< "$string" | cut -d- -f1 | rev, তবে তারপরে আমরা প্যারাম.স্প্যাশনির সরলতা থেকে দূরে সরে যাচ্ছি।
গ্লেন জ্যাকম্যান


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.