আমি কীভাবে একটি স্ট্রিংয়ের সাথে শেড ব্যবহার করে কোনও চরিত্রের শেষ ঘটনাটি প্রতিস্থাপন করব?


31

আমি কোনও স্থান ব্যবহার করে একটি স্ট্রিংয়ে কেবল "-" এর শেষ ঘটনাটি কীভাবে প্রতিস্থাপন করব sed?

উদাহরণ স্বরূপ:

echo $MASTER_DISK_RELEASE
swp-RedHat-Linux-OS-5.5.0.0-03

তবে আমি নিম্নলিখিত আউটপুটটি পেতে চাই (একটি স্থানের সাথে শেষ হাইফেন ["-"] প্রতিস্থাপন)

swp-RedHat-Linux-OS-5.5.0.0 03

উত্তর:


48

আপনি একক দিয়ে এটি করতে পারেন sed:

sed 's/\(.*\)-/\1 /'

বা, বর্ধিত নিয়মিত এক্সপ্রেশন ব্যবহার করে:

sed -r 's/(.*)-/\1 /'

মোদ্দা কথাটি sedহ'ল অত্যন্ত লোভী, তাই -অন্যদের সহ যতটা সম্ভব চরিত্রের সাথে মেলে -

$ echo 'swp-RedHat-Linux-OS-5.5.0.0-03' | sed 's/\(.*\)-/\1 /'
swp-RedHat-Linux-OS-5.5.0.0 03

2
দ্রষ্টব্য, এটি পোর্টেবল নয়। কিছু নন-জিএনইউ সংস্করণ sedপ্যাটার্ন মেলগুলি সমর্থন করে না। সেক্ষেত্রে আপনার কিছু অন্য দরকার, তা হোক perl -pne 's/(.*)-/$1 /'বা @ থোরের প্যারামিটার সম্প্রসারণ সমাধান বা অন্য কিছু।
অ্যাডাম কাটজ

অবশ্যই :-) thx ...
গ্রেগ

একক উদ্ধৃতি ব্যবহার করার সময় আপনার সেই বন্ধনীগুলি এড়াতে হবে না।
jgmjgm

@jgmjgm এর সাথে বর্ধিত নিয়মিত অভিব্যক্তি ব্যবহার করে আপনি ব্যাকস্ল্যাশগুলি বাদ দিতে পারেন sed -r
জিম্মিজ

1
@ ভিনয়েপটলুরি চেষ্টা করুন sed -r 's/(.*)-(.*)-/\1 \2 /')
জিম্মিজ


11

এরকম কিছু আমার পক্ষে কাজ করেছিল, যদিও আমি নিশ্চিত যে আরও ভাল উপায় আছে

echo "swp-RedHat-Linux-OS-5.5.0.0-03" | rev | sed 's/-/ /' | rev
swp-RedHat-Linux-OS-5.5.0.0 03

এটা খারাপ ... সরল খারাপ। যখন আপনি 2 করতে পারেন তখন 4 টি অপারেশন কেন করবেন?
জোশপবারন

7
নিয়মিত প্রকাশের জন্য কেবলমাত্র একটি প্রাথমিক বোধগম্য ব্যক্তির জন্য, এই উত্তরগুলি আরও বেশি অ্যাক্সেসযোগ্য বলে মনে হয়। এবং এটি কতটা অপারেশন নেয় তা কে যত্নশীল করে, এটি সমস্ত ব্যবহারিক ক্ষেত্রে তাত্ক্ষণিক হতে চলেছে। সুতরাং আমি যতটা সম্ভব অপারেশন ব্যবহার করার জন্য কিছু স্বেচ্ছাচারী নিয়মের উপর পাঠযোগ্যতা বিবেচনা করব।
সিসিরাস

5
@Psirus আমি আশা করি এই কৃমি একটি পারেন খুলুন যাচ্ছে না, কিন্তু ক্ষুদ্রতর অপারেশন ব্যবহার করার ব্যাপারে একটি নির্দিষ্ট স্তর শোকেস হয় আধিপত্য এর ক্ষুদ্রতর অপারেশন। উদাহরণস্বরূপ, @ থোরের উত্তরটি bashপ্যারামিটার সম্প্রসারণ বৈশিষ্ট্যের একটি প্রশংসা দেখায় , যা ওপিও ব্যবহার করে যদি ভাল কাজ করে bash। পঠনযোগ্যতা (খুব ভার্বোজ হওয়ার দিক থেকে) এবং সঠিক সরঞ্জামগুলি ব্যবহারের মধ্যে একটি সূক্ষ্ম ভারসাম্য হতে চলেছে, তবে সঠিক সরঞ্জামগুলি ব্যবহার না করার চেয়ে প্রায়শই প্রায়শই غالب হয়।
hjk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.