বাশে (আন্ডারস্কোর) _ দিয়ে সাদা স্পেসগুলি প্রতিস্থাপনের সহজতম উপায়


92

সম্প্রতি আমাকে একটি ছোট স্ক্রিপ্ট লিখতে হয়েছিল যা জেনসভারটিতে ভিএমগুলি পার্স করেছিল এবং ভিএমগুলির নামগুলি বেশিরভাগ সাদা স্পেস সহ যেমন উইন্ডোজ এক্সপি বা উইন্ডোজ সার্ভার ২০০৮ এ, আমাকে সেই সাদা স্পেসগুলি ছাঁটাইতে হয়েছিল এবং তাদের আন্ডারস্কোর দিয়ে প্রতিস্থাপন করতে হয়েছিল _। আমি সেড ব্যবহার করে এটি করার একটি সহজ সমাধান খুঁজে পেয়েছি যা স্ট্রিং ম্যানিপুলেশনের ক্ষেত্রে আসে দুর্দান্ত সরঞ্জাম।

echo "This is just a test" | sed -e 's/ /_/g'

প্রত্যাবর্তন

This_is_just_a_test

এটি সম্পাদনের অন্যান্য উপায় আছে?


8
এবং প্রশ্নটি হচ্ছে?
রাগেজেড

4
হাই ল্যাটজ, স্ট্যাকওভারফ্লো একটি প্রশ্নোত্তর সাইট। আপনি প্রশ্ন জিজ্ঞাসা করেন এবং অন্যরা এর উত্তর দেয় বা আপনি অন্যের প্রশ্নের উত্তর দিতে পারেন। আপনি যদি নিজের জ্ঞান ভাগ করতে চান তবে আপনি একটি প্রশ্ন জিজ্ঞাসা করতে পারেন, তারপরে নিজেই উত্তর দিন (অন্যদেরও উত্তর দেওয়ার জন্য কিছু সময় রেখে))
mouviciel

4
ওপস ভেবেছিল আমি এই জ্ঞানটি সেভাবে যুক্ত করব যাতে এটি এখানে সঞ্চিত থাকে। যাইহোক এটি আপনি নিজের মতো করে পরবর্তী বারের মতো বলেছিলেন, আমার নিজের প্রশ্নের জবাব দিয়ে :)
ফ্লাজারিনী

উত্তর:


175

আপনি এটি কেবল শেল ব্যবহার করে করতে পারেন, প্রয়োজন নেই trবা প্রয়োজন নেইsed

$ str="This is just a test"
$ echo ${str// /_}
This_is_just_a_test

4
অথবা আন্ডারস্কোর সব নন- ASCII শব্দ অক্ষর রূপান্তর: ${str//[^a-zA-Z0-9]/_}; যে কোনও উপায়ে যদি আপনি খাঁটি পসিক্স শেলকে আঁকড়ে ধরে না থাকেন তবে আপনার কাছে উপলব্ধ বৈশিষ্ট্যগুলি ব্যবহার করুন।
বন্দুকগুলি

কিছু বিরামচিহ্নও থাকতে পারে যা বৈধ হিসাবেও রয়েছে। আমরা জানি না.
ghostdog74

এই সমাধানটির জন্য THX ঠিক আমি যা খুঁজছিলাম। অনেক অনেক ধন্যবাদ
ফ্লাজারিনী

18

এটি সীমান্তের প্রোগ্রামিং, তবে টিআর ব্যবহার করে দেখুন :

$ echo "this is just a test" | tr -s ' ' | tr ' ' '_'

এটা করা উচিত। প্রথম অনুরোধটি স্থানগুলি নীচে নেমে আসে, দ্বিতীয়টি আন্ডারস্কোর দিয়ে প্রতিস্থাপন করে। আপনার সম্ভবত টিএবিএস এবং অন্যান্য সাদা স্থানের অক্ষর যুক্ত করতে হবে, এটি কেবলমাত্র ফাঁকা স্থানের জন্য।

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