`$ {F // / _}` এ ডাবল স্ল্যাশ এর অর্থ কী?


18

আমি বাশ শিখছি, এবং আমি অন্য "ফাঁকা" অক্ষরগুলির সাথে স্থানের অক্ষরগুলি প্রতিস্থাপন করতে চাই। আমি একটি forলুপ ব্যবহার করছি :

for f in *\ *; do mv "$f" "${f// /_}"; done

আমার প্রশ্ন, ডাবল স্ল্যাশ এবং স্পেসটি কেন ${f// /_}? কি করে ${f// /_}?


4
আপনার যদি এটি হৃদয় দিয়ে শেখার দরকার না হয় তবে কমপক্ষে এটি সম্পর্কে কোথায় পড়া উচিত তা আপনার জানা উচিত: এটি ব্যাশ ম্যানুয়ালটিতে রয়েছে
গ্লেন জ্যাকম্যান

উত্তর:


20

bashপ্যারামিটার সম্প্রসারণ ব্যবহার করে প্রতিস্থাপনের ধরণটি চালিত করে ।

ইন ${f// /_}:

  • ডাবল স্ল্যাশগুলি //স্থানের সমস্ত ঘটনাগুলি প্রতিস্থাপনের জন্য _, যদি আপনি একটি স্ল্যাশ রাখেন তবে /কেবল প্রথম স্থানটি প্রতিস্থাপন করা হবে

  • স্থানটি সেখানে কারণ আপনি স্থান প্রতিস্থাপন করছেন (আন্ডারস্কোর সহ)

সুতরাং নিদর্শনটি হ'ল:

${parameter//find/replace}

man bashআরও ধারণা পেতে চেক করুন ।

একবারে Parameter Expansionবিভাগে পেতে man bash:

LESS=+/'Parameter Expansion' man bash

3
সংক্ষেপে, এটি একটি বিশ্বব্যাপী অনুসন্ধান এবং প্রতিস্থাপন।
গ্লেন জ্যাকম্যান

4

বিভাগটির "{f// /_}অর্থ প্রতিটি স্থানকে আন্ডারস্কোর দিয়ে প্রতিস্থাপন করা উচিত। এটি ব্যাশ প্যারামিটার সম্প্রসারণটি ব্যবহার করছে , শেল প্রসারণের প্রতিটি ম্যাচ (গ্লোববিং) এর জন্য fসংজ্ঞায়িত পরিবর্তনশীলটি for f in *\ *;চলবে run প্রতিবার পাওয়া ফাইলের নামটি হয়ে উঠবে মান $f

প্যারামিটার বিস্তৃতি //নিম্নলিখিত বর্ণের প্রতিটি ঘটনার অর্থ নিয়ে কাজ করে //(এই উদাহরণে স্থান), এর পরে অক্ষর দ্বারা প্রতিস্থাপন করা উচিত /(এই উদাহরণে আন্ডারস্কোর)।

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